Skip to main content

It's data based!

Project description

Limber Timber

It's data based!


status PyPI version Python Tests Last Commit License

pip install limber-timber

Overview

I am writing the migration system I always wanted but did not exist, until now. Read the docs to learn more!

Docs

https://Wopple.github.io/limber-timber

Roadmap

These are listed in rough priority order.

  • ✅ CLI
  • ✅ Publish to PyPI
  • ✅ Templating
  • ➡️ Documentation
  • ➡️ Unit Tests
    • ➡️ Templating
  • ✅ JSON Schema
  • ✅ In-memory Database
  • ✅ In-memory Metadata
  • ➡️ Big Query Database
    • ➡️ Create Snapshot Table
    • ➡️ Create Table Clone
  • ✅ Big Query Metadata
  • ✅ Database Adoption
  • ✅ Raise Unsupported Operations
  • ✅ Scan Topologically with Foreign Keys
  • ✅ Database Specific Validation
  • ➡️ Github Actions
    • ➡️ Release
  • ➡️ Grouped Operation Application
    • To reduce round trips with the backend and reduce migration time
  • ➡️ Expand Grouped Operations
    • To handle complex operations that do not have atomic support in the backend
  • ✅ Minimize Scan Output
  • ✅ Arbitrary DML SQL Migrations
  • ➡️ File System Metadata
  • ➡️ SQLite Database
  • ➡️ SQLite Metadata
  • ➡️ Postgres Database
  • ➡️ Postgres Metadata
  • ➡️ MySQL Database
  • ➡️ MySQL Metadata
  • ➡️ Optional Backend Installation
    • To minimize dependency bloat

Contribution

If you want to contribute, read the docs and check out the roadmap. I will only accept contributions if:

  1. I agree with the design decisions
  2. The code style matches the existing code
  3. Unit tests are included (if needed)

If you have any questions, you can reach out to me on discord.

Design Principles

  • The default behavior is safe and automated
  • The behavior can be configured to be fast and efficient
  • High flexibility to support future and unknown use-cases
  • Prefer supporting narrow use cases well rather than broad use cases poorly
  • Apply heavy importance to the Single Responsibility Principle
  • Put complex logic in easily testable functions

Code Style

  • 4-space indentation
  • Prefer single quotes
    • exceptions
      • pyproject.toml
      • docstrings
      • nested f-strings
  • Use newlines to visually separate blocks and conceptual groups of code
  • Include explicit else blocks
    • exceptions
      • assertive if-statements
  • Naming
    • balance brevity and clarity: say exactly what is needed
    • do not restate what is already clear from the context
  • Comments
    • dos
      • clarify confusing code
      • explain the 'why'
      • first try to explain with the code instead of a comment
    • do nots
      • make assumptions about the reader
      • state that which is explained by the nearby code
      • cover up for poor code
      • just because
  • Multiline strings use concatenated single line strings
    • exceptions
      • docstrings
  • No from my.module import *
    • instead: from my import module as md

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

limber_timber-0.4.1.tar.gz (41.7 kB view details)

Uploaded Source

Built Distribution

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

limber_timber-0.4.1-py3-none-any.whl (54.0 kB view details)

Uploaded Python 3

File details

Details for the file limber_timber-0.4.1.tar.gz.

File metadata

  • Download URL: limber_timber-0.4.1.tar.gz
  • Upload date:
  • Size: 41.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.2 CPython/3.11.9 Darwin/24.6.0

File hashes

Hashes for limber_timber-0.4.1.tar.gz
Algorithm Hash digest
SHA256 87a48d7fab96786d21efb1553c8ed673154e1adb55dd72bffb59c4f36de2a9dc
MD5 d208c3e77bfaed4a2ff27f8636ff234e
BLAKE2b-256 2b7521d7e893d5f489d0744fc16262095a04389af67a43daf63ca2c3d2123cb4

See more details on using hashes here.

File details

Details for the file limber_timber-0.4.1-py3-none-any.whl.

File metadata

  • Download URL: limber_timber-0.4.1-py3-none-any.whl
  • Upload date:
  • Size: 54.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.2 CPython/3.11.9 Darwin/24.6.0

File hashes

Hashes for limber_timber-0.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e3155f1a624bde69cb2c89ed000b864ed80e7e0f73511151458168d1a39a9d32
MD5 fdc001f818a555b7db27eed7d99d8532
BLAKE2b-256 d86b7c00af8f0a33138ac9efcce996d2acd38f1a42b23363e90bc8a02dbc3968

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