๐Ÿš€ Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more โ†’
Socket
DemoInstallSign in
Socket

jsonclasses

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

jsonclasses

The modern declarative data flow pipeline and data graph framework for the AI empowered generation.

3.3.0
PyPI
Maintainers
1

๐ŸŒŽ JSONClasses Pypi Python Version License PR Welcome

JSONClasses is a declarative data flow pipeline and data graph framework.

Official Website: https://www.jsonclasses.com

Official Documentation: https://docs.jsonclasses.com

๐Ÿš— Features

Features
๐Ÿ› Data Modeling Declarative data model with Python type hints
๐ŸธData Sanitization Two strictness modes
๐ŸฉบData Validation Descriptive data validation rules without even a line of code
๐ŸงฌData Transformation Intuitive with modifier pipelines
๐Ÿฆ–Data Presentation Custom key encoding & decoding strategies
๐ŸŒData Graphing Models are linked with each other on the same graph
๐Ÿ„โ€โ™‚๏ธData Querying Well-designed protocols and implementations for databases
๐Ÿš€Synthesized CRUD Only with a line of code
๐Ÿ‘ฎโ€โ™€๏ธSession & Authorization Builtin support for session and authorization
๐Ÿ”Permission System Supports both object level and field level
๐Ÿ“File Uploading A configuration is enough for file uploading
๐Ÿ“ฆData Seeder Declarative named graph relationship

๐ŸŽ Getting Started

Prerequisites

Python >= 3.10 is required. You can download it here.

Install JSONClasses

Install JSONClasses is simple with pip.

pip install jsonclasses

Install Components

Depends on your need, you can install ORM integration and HTTP library integration with the following commands.

pip install jsonclasses-pymongo jsonclasses-server

๐ŸŽน Examples

Business Logic Examples

Example 1: Dating App Users

Let's say, you are building the base user functionality for a cross-platform dating app.

The product requirements are:

  • Unique phone number is required
  • Password should be secure, encrypted, hidden from response
  • Gender cannot be changed after set
  • This product is adult only
  • User intro should be brief

Let's transform the requirements into code.

from jsonclasses import jsonclass, types
from jsonclasses_pymongo import pymongo
from jsonclasses_server import api


@api
@pymongo
@jsonclass
class User:
    id: str = types.readonly.str.primary.mongoid.required
    phone_no: str = types.str.unique.index.match(local_phone_no_regex).required #1
    email: str = types.str.match(email_regex)
    password: str = types.str.writeonly.length(8, 16).match(secure_password_regex).transform(salt).required #2
    nickname: str = types.str.required
    gender: str = types.str.writeonce.oneof(['male', 'female']) #3
    age: int = types.int.min(18).max(100) #4
    intro: str = types.str.truncate(500) #5
    created_at: datetime = types.readonly.datetime.tscreated.required
    updated_at: datetime = types.readonly.datetime.tsupdated.required

โšฝ๏ธ Database & HTTP Library Integrations

๐Ÿฆธ Contributing

  • File a bug report. Be sure to include information like what version of YoMo you are using, what your operating system is, and steps to recreate the bug.
  • Suggest a new feature.

๐Ÿคน๐Ÿปโ€โ™€๏ธ Feedback

Any questions or good ideas, please feel free to come to our Discussion. Any feedback would be greatly appreciated!

License

MIT License

FAQs

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts