Skip to main content

Assimilator - the best Python patterns for the best projects

PyAssimilator

License Stars Last commit

Install now

  • pip install py-assimilator

What is that all about?

  1. We want to write the best code.
  2. We need the best patterns and techniques for this.
  3. We use PyAssimilator and save lots of time.
  4. We use PyAssimilator and write the best code.
  5. We use PyAssimilator and use the best patterns.
  6. We use PyAssimilator and have no dependencies in our code.
  7. We use PyAssimilator and can switch one database to another in a matter of seconds.
  8. We learn PyAssimilator once and use it forever!
  9. And most importantly, we make Python projects better!

Code comparison

Before PyAssimilator:

# BAD CODE :(

def create_user(username: str, email: str):
    # NO PATTERNS!
    # ONLY ONE DATABASE CHOICE!
    new_user = User(username=username, email=email, balance=0) # DEPENDENCY!
    session = db_session()  # DEPENDENCY!
    session.add(new_user)
    session.commit()  # NO ACID TRANSACTIONS!
    return new_user

After:

# GOOD CODE :)

def create_user(username: str, email: str, uow: UnitOfWork):
    # BEST DDD PATTERNS
    # PATTERN SUBSTITUTION/MULTIPLE DATABASES AT ONCE

    with uow:   # ACID TRANSACTIONS IN ANY DATABASE
        new_user = uow.repository.save(
            username=username,  # NO MODEL DEPENDENCIES
            email=email,
            balance=0,
        )
        uow.commit()    # AUTO ROLLBACK

    return new_user

So, do I really need it?

If you want to spend less time writing your code, but write better code - then you must use PyAssimilator. It can be hard to start if you have no experience with good code, so you can watch creator's video tutorials.

Our vision

Make Python the best programming language for enterprise development and use all of its dynamic capabilities to write things that other languages can't even comprehend!

  • Pattern substitution(switch databases easily) ✔️
  • Event-based apps(in development) 🛠️
  • 45% of all Python projects use PyAssimilator 🛠️
  • Independent code(in development) 🛠️
  • Adaptive patterns(in development) 🛠️
  • Automatic code improvements(in development) 🛠️
  • Decentralized code management(in development) 🛠️

If you want to help with any of those things - be free to contribute to the project. Remember, you never do anything for free - and that will not be the case either.

Sources

Contributors

Stars history

Star History Chart

⭐Stargazers⭐

We love all people who star our library. You can look at all stargazers in the documentation:

https://knucklesuganda.github.io/py_assimilator/#stars-history

If you star the library you will appear there as well!

Types of patterns

These are different use cases for the patterns implemented:

  • Database - patterns for database/data layer interactions.
  • Events(in development) - projects with events or event-driven architecture.
  • Unidentified - patterns that are useful for different purposes.

Available providers

Providers are different patterns for external modules like SQLAlchemy or FastAPI.

  • Alchemy(Database, Events) - patterns for SQLAlchemy for both database and events.
  • Kafka(Events) - patterns in Kafka related to events.
  • Internal(Database, Events) - internal is the type of provider that saves everything in memory(dict, list and all the tools within your app).
  • Redis(Database, Events) - redis_ allows us to work with Redis memory database.
  • MongoDB(Database) - mongo allows us to work with MongoDB database.

Metadata

Release files for py-assimilator 1.3.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for py-assimilator 1.3.1
File Size Uploaded Provenance
py_assimilator-1.3.1.tar.gz 27.0 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for py-assimilator 1.3.1
File Interpreter ABI Platform
py_assimilator-1.3.1-py3-none-any.whl Python 3 none any Details

Total release size: 76.8 kB

Release files / py_assimilator-1.3.1.tar.gz

Download URL py_assimilator-1.3.1.tar.gz
Size 27.0 kB
Tags Source
SHA-256 checksum
How to use checksums
43b3292a82a3bd7251ae7c531634f9c70544c21b807e8268c8f545aaa9b6e935
BLAKE2b-256 checksum
How to use checksums
6d19ffcc25b2efcdb164c8ed5fcff85c7a14b35ce792ff71574d73e489e9a893
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.8.10

Release files / py_assimilator-1.3.1-py3-none-any.whl

Download URL py_assimilator-1.3.1-py3-none-any.whl
Size 49.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
94f184f43097f7587f679a76489eb00e6aa40a1bdf95863458ff7d87a094fbd2
BLAKE2b-256 checksum
How to use checksums
9b669acbd24cb5489ae5a6c824244ac3778f8c6c83efc2795eb8df1a5b371443
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.8.10

Security for py-assimilator 1.3.1

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.

Release history Release notifications | RSS feed

This release

1.3.1 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page