Skip to main content

One CRUD to rule them all

Project description

 A horizontal tech-noir banner for the 'Anisodactyl' library. The design features a dark, textured background composed of a grid of muted grey symbols that resemble futuristic or alien hieroglyphics. At the center, two large, minimalist white icons depict an artistic representation of anisodactyl bird footprints. A metaphorical nod to 'Crow’s Foot' database notation, where the hallux represents a parent table and the forward digits represent child relations. Below the icons, the word 'Anisodactyl' is rendered in a custom, geometric 'Modern Hieroglyphic' script, bridging the gap between ancient record-keeping and modern relational database architecture

Anisodactyl

One CRUD to rule them all.

This tries to solve the following problems:

  • Headless CRUD Wrapper - Programmatic and configurable CRUD system for models.
  • Automatic CRUD API Endpoints - Create, Get, Get All, Patch Update and Delete REST API Endpoints for any database table.
  • Schema Driven URL Sorting and Filtering - URL based sorting and filtering automatically available to all properties listed in schema.
  • Swappable URL Conventions - Pick and choose between different URL conventions.
  • Nested Database Mutations - Generic CRUD for nested databases. Eliminate N+1 network requests.

Anisodactyl Foot Prints

👀 Vision

A typical CRUD interfaces db structure in a way where each table is a node:

Parent? --- Current --< Children?

Every table in your interconnected database sits at the center of it's own relationship graph; optional Parent pointing inwards and optional Children pointing outwards.

graph TD

c1(
  <b>Child 1</b>
  Timetable
  Appointments
)
c2(
  <b>Child 2</b>
  Schedule
  Designations
)
c3(
  <b>Child N</b>
  Address
  Contacts
)
s(
  <b>Self</b>
  Staffs,Teachers
  Employees,Trainees
  Students,etc.
)
p(
  <b>Parent</b>
  Company
  School
  Library
  Bakery
  etc.
)

c1 & c2 & c3 === s === p

The diagram above forms the shape of an anisodactyl "crow foot" - digits (children), hallux (parent), connected through the central tarsometatarsus self.

Current object can be anything. It can be one of the children as well, being able to create any graph like structure imaginable.


Anisodactyl Foot Prints

📚 Notes

Query Parameter Conventions

JSON API

// ?filter[key_name][operator]=value&[key_name][operator]=value
?filter%5Bkey_name%5D%5Boperator%5D=value&%5Bkey_name%5D%5Boperator%5D=value

but [ and ] gets encoded into %5B and %5D which makes URLs ugly and unreadable.

Django REST Framework

// ?post_tag=fiction&comment_count__gt=10
?key_name__operator=value&key_name__operator=value

The python standard due to Django influence.

Anisodactyl

// ?post_tag=fiction&comment_count=gt:10
?key_name=operator:value&key_name=operator:value
// ?fields=name,email
?fields=key1,key2,key3
// ?sort=-name
?sort=-field,field

Super clean, simple and developer centric.


Anisodactyl Foot Prints

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

anisodactyl-0.1.0.tar.gz (106.7 kB view details)

Uploaded Source

Built Distribution

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

anisodactyl-0.1.0-py3-none-any.whl (11.1 kB view details)

Uploaded Python 3

File details

Details for the file anisodactyl-0.1.0.tar.gz.

File metadata

  • Download URL: anisodactyl-0.1.0.tar.gz
  • Upload date:
  • Size: 106.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.6

File hashes

Hashes for anisodactyl-0.1.0.tar.gz
Algorithm Hash digest
SHA256 3a8aa81d97e92736c52bf6cdff54c58174708460aa570e9c86d5bc33f7439b27
MD5 7fee01ee43e58fc10aaa649cb48857f5
BLAKE2b-256 2eae82a6c8aa4ac6c113fedf479603e0d035c59a751903b8080cfe79fb73e647

See more details on using hashes here.

File details

Details for the file anisodactyl-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: anisodactyl-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 11.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.6

File hashes

Hashes for anisodactyl-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9a847108126f1972ea0b4388a97ffc906e17e4fc6c6ff6eeeb7773cfe6fa68ce
MD5 e0a89ca4738010d5afcec37c66e30fb6
BLAKE2b-256 cefca3a500afe8e50f1554bdec2a84cfcbcfadaa8b57e34764015c20d73188a9

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