Skip to main content

Immutable builder, carbon copy of lann/builder package in GoLang.

Project description

Untouched

https://pypi.org/project/untouched/

https://github.com/DAMACANER/untouched

Carbon copy of https://github.com/lann/builder for making a Python NoSQL query builder.

Installing:

poetry add untouched

Example:

from  untouched.builder import Builder, get_struct, T
from untouched.registry import Registry
from typing import Optional

NameDBField: str = "name"
AgeDBField: str = "age"
class UserQueryBuilder(Builder):
        """
        The UserBuilder class inherits from Builder and provides specific methods to set the 'name' and 'age' attributes.
        """

        def __init__(self):
            super().__init__()

        def name(self, val: str) -> 'UserQueryBuilder':
            """
            Creates a new UserBuilder with the 'name' attribute set to the provided value.
            """
            return self.set_value(NameDBField, val)

        def age(self, val: int) -> 'UserQueryBuilder':
            """
            Creates a new UserBuilder with the 'age' attribute set to the provided value.
            """
            return self.set_value(AgeDBField, val)


class User:
        """
        The User class represents the structure that the UserBuilder will build.
        """

        def __init__(self, name: Optional[str] = None, age: Optional[int] = None):
            self.name = name
            self.age = age

registry = Registry()
registry.register(UserQueryBuilder(), User())
user_builder = UserQueryBuilder().name("caner").age(25)
print(user_builder.get_builder_map())


# Output:
# 
# {'age': 25, 'name': 'caner'}

Thanks a lot to Lann for the original builder package, this is wonderful.

Not a perfect copy of the library, yet it works! Which is, what python is right? It is fast enough, and it works.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

untouched-0.2.6.tar.gz (3.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

untouched-0.2.6-py3-none-any.whl (4.6 kB view details)

Uploaded Python 3

File details

Details for the file untouched-0.2.6.tar.gz.

File metadata

  • Download URL: untouched-0.2.6.tar.gz
  • Upload date:
  • Size: 3.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.5.1 CPython/3.11.3 Linux/6.3.5-201.fsync.fc37.x86_64

File hashes

Hashes for untouched-0.2.6.tar.gz
Algorithm Hash digest
SHA256 8e4ecc2041c1bdceabddc0c391d0bc21b4e90425dcc5be2b6bd8819d613f4e04
MD5 10440ece18af85a96d74c31d04609895
BLAKE2b-256 d984755c7ec7005741571b5203698e9411ba42b50557d2977f8370b93103df76

See more details on using hashes here.

File details

Details for the file untouched-0.2.6-py3-none-any.whl.

File metadata

  • Download URL: untouched-0.2.6-py3-none-any.whl
  • Upload date:
  • Size: 4.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.5.1 CPython/3.11.3 Linux/6.3.5-201.fsync.fc37.x86_64

File hashes

Hashes for untouched-0.2.6-py3-none-any.whl
Algorithm Hash digest
SHA256 4df94b1d5894160273a47bad0420c82b6bcfcaa80f4cfdeedd9f8e2a8a38e3d2
MD5 3af4be86d16544c01d06aad3984ddd50
BLAKE2b-256 15875d340386c8ca43c00440e1bb2fb7613c88a60753acd2ec9bc2956cf094c6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page