This release is a pre-release and may not be stable for production use.
No SeiQueLa ORM
IN DEVELOPMENT
No SeiQueLa is a small and expressive ORM (Object Relational Mapper) to interact with Google Datastore inspired by Django, Mongo-Engine and Peewee.
Requirements
- Google Cloud credentials
- Python>=3.8
Installing
The library can be installed using pip:
pip install noseiquela_orm
Usage
Creating model classes:
from noseiquela_orm.entity import Model
from noseiquela_orm.key import Key, ParentKey
from noseiquela_orm import properties
class Customer(Model):
name = properties.StringProperty(required=True)
age = properties.IntegerProperty(required=True)
is_deleted = properties.BooleanProperty(default=False, required=True)
class CustomerAddress(Model):
__kind__ = "Address"
__parent__ = properties.ParentKey(Customer, required=True)
number = properties.IntegerProperty(required=True)
address_one = properties.StringProperty(required=True)
address_two = properties.StringProperty()
is_default = properties.BooleanProperty(required=True)
is_deleted = properties.BooleanProperty(default=False, required=True)
In case the project name, namespace (or any other parameter of the google.cloud.datastore.Client) needs to be changed, simply create a Meta class inside the template with the desired information.
class Product(Model):
quantity = properties.IntegerProperty(required=True)
name = properties.StringProperty(required=True)
value = properties.FloatProperty(required=True)
class Meta:
namespace = "production"
project = "products"
Adding new entities:
new_customer = Customer(
name="Geraldo Castro",
age=29,
)
new_customer.save()
new_address = CustomerAddress(
parent_id=new_customer.id,
number=199,
address_one="Some St.",
is_default=True
)
new_address.save()
Query on database:
customer = Customer.query.filter(name="Geraldo Castro").first()
customer_address = Customer.query.filter(parend_id=customer.id)
less_than_or_eq_29 = Customer.query.filter(age__le=29) # age <= 29
more_than_30 = Customer.query.filter(age__gt=30) # age > 30
all_customers = [
customer.to_dict()
for customer in Customer.query.all()
]
Authentication
The library uses the standard way of authenticating Google libraries (google-auth-library-python).
The search for credentials happens in the following order:
-
If the environment variable
GOOGLE_APPLICATION_CREDENTIALSis set to a valid service account path. -
If the
Google Cloud SDKis installed and has the credentials of the application to be used, these will be loaded. -
If the application is running in the
App Engine standard environment(first generation), then the credentials and project ID are taken from theApp Identity Service. -
If the application is running in
Compute Engine,Cloud Run,App Engine flexible environmentorApp Engine standard environment(second generation), then the credentials and project ID are taken from theMetadata Service.
More details at this link.
Metadata
Release files for noseiquela-orm 0.0.8.dev1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| noseiquela_orm-0.0.8.dev1.tar.gz | 10.8 kB | Without provenance | Details for noseiquela_orm-0.0.8.dev1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| noseiquela_orm-0.0.8.dev1-py3-none-any.whl | Python 3 | none | any | Details for noseiquela_orm-0.0.8.dev1-py3-none-any.whl |
Total release size: 21.9 kB
Release files / noseiquela_orm-0.0.8.dev1.tar.gz
| Download URL | noseiquela_orm-0.0.8.dev1.tar.gz |
|---|---|
| Size | 10.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
44790ca203fc2026933cab63bf833ac3b1ea27376f3e2dae8fcbdf30cc8b4f7c
|
|
BLAKE2b-256 checksum How to use checksums |
04175a1f7cf4b5b3af5c4f01c5c7d9a95b565a84ce2f97aa3fafb9ed29fe7305
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.7.1 importlib_metadata/4.9.0 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.12
|
Release files / noseiquela_orm-0.0.8.dev1-py3-none-any.whl
| Download URL | noseiquela_orm-0.0.8.dev1-py3-none-any.whl |
|---|---|
| Size | 11.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0469f59c61e98c858da72254a08b25f7c33b884652273def2689d49c9e4b782a
|
|
BLAKE2b-256 checksum How to use checksums |
c4ed8cc478def9b22de3e2ef89a42b4c255e6d8db747d931983d3350380dba28
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.7.1 importlib_metadata/4.9.0 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.12
|
Security for noseiquela-orm 0.0.8.dev1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.