Skip to main content

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

Project description

Untouched

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

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

Installing:

poetry add untouched

Example:

from ?????
from pprint import pprint
from typing import Optional

class UserBuilder(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) -> 'UserBuilder':
            """
            Creates a new UserBuilder with the 'name' attribute set to the provided value.
            """
            return self.set_value("name", val)

        def age(self, val: int) -> 'UserBuilder':
            """
            Creates a new UserBuilder with the 'age' attribute set to the provided value.
            """
            return self.set_value("age", 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


    # Register the untouched-struct pair
registry.register(UserBuilder(), User())
user_builder = UserBuilder().name("caner").age(25).name("caner2")  # Build a user
user = get_struct(user_builder)  # Convert the untouched to a struct
pprint(user.__dict__)  # Print the user struct's attributes

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

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.1.4.tar.gz (3.3 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.1.4-py3-none-any.whl (4.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: untouched-0.1.4.tar.gz
  • Upload date:
  • Size: 3.3 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.1.4.tar.gz
Algorithm Hash digest
SHA256 72326fda87827c93f9703df14f1b5dad11a26aec45c6788ac89f9a4bbbff7e59
MD5 e31b0a42cd41818d11ec65264a56b879
BLAKE2b-256 a0bfa97ca7ff0813958ace35ce35d4e4d8af5dedfb8770231c121c56e546d543

See more details on using hashes here.

File details

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

File metadata

  • Download URL: untouched-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 4.5 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.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 33021c75b824d4003f54135a79d5b6065a5f600b317185a5b7e7164ed50cf435
MD5 fa5aa9e695e38a99e1e78b5e3dfa2af5
BLAKE2b-256 d714da72877fcb092186064d6a598eaec5591d37b9cb35f296ee910f0380f4b4

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