๐ŸŒŽ The Modern Declarative Data Flow Framework for the AI Empowered Generation.

Overview

๐ŸŒŽ 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:

  1. Unique phone number is required
  2. Password should be secure, encrypted, hidden from response
  3. Gender cannot be changed after set
  4. This product is adult only
  5. 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

Owner
Fillmula Inc.
Fillmula Inc.
Codebase for testing whether hidden states of neural networks encode discrete structures.

structural-probes Codebase for testing whether hidden states of neural networks encode discrete structures. Based on the paper A Structural Probe for

John Hewitt 349 Dec 17, 2022
Source code of the paper "Deep Learning of Latent Variable Models for Industrial Process Monitoring".

Source code of the paper "Deep Learning of Latent Variable Models for Industrial Process Monitoring".

Xiangyin Kong 7 Nov 08, 2022
Yoloxkeypointsegment - An anchor-free version of YOLO, with a simpler design but better performance

Introduction ๅ…ณ้”ฎ็‚น็‰ˆๆœฌ๏ผšๅทฒๅฎŒๆˆ ๅ…จๆ™ฏๅˆ†ๅ‰ฒ็‰ˆๆœฌ๏ผšๅทฒๅฎŒๆˆ ๅฎžไพ‹ๅˆ†ๅ‰ฒ็‰ˆๆœฌ๏ผšๅทฒๅฎŒๆˆ YOLOX is an anchor-free version of

23 Oct 20, 2022
PyTorch implementation of Deformable Convolution

Deformable Convolutional Networks in PyTorch This repo is an implementation of Deformable Convolution. Ported from author's MXNet implementation. Buil

411 Dec 16, 2022
A Nim frontend for pytorch, aiming to be mostly auto-generated and internally using ATen.

Master Release Pytorch - Py + Nim A Nim frontend for pytorch, aiming to be mostly auto-generated and internally using ATen. Because Nim compiles to C+

Giovanni Petrantoni 425 Dec 22, 2022
A pre-trained language model for social media text in Spanish

RoBERTuito A pre-trained language model for social media text in Spanish READ THE FULL PAPER Github Repository RoBERTuito is a pre-trained language mo

25 Dec 29, 2022
banditml is a lightweight contextual bandit & reinforcement learning library designed to be used in production Python services.

banditml is a lightweight contextual bandit & reinforcement learning library designed to be used in production Python services. This library is developed by Bandit ML and ex-authors of Facebook's app

Bandit ML 51 Dec 22, 2022
9th place solution

AllDataAreExt-Galixir-Kaggle-HPA-2021-Solution Team Members Qishen Ha is Master of Engineering from the University of Tokyo. Machine Learning Engineer

daishu 5 Nov 18, 2021
A Comparative Framework for Multimodal Recommender Systems

Cornac Cornac is a comparative framework for multimodal recommender systems. It focuses on making it convenient to work with models leveraging auxilia

Preferred.AI 671 Jan 03, 2023
Jupyter notebooks showing best practices for using cx_Oracle, the Python DB API for Oracle Database

Python cx_Oracle Notebooks, 2022 The repository contains Jupyter notebooks showing best practices for using cx_Oracle, the Python DB API for Oracle Da

Christopher Jones 13 Dec 15, 2022
A complete speech segmentation system using Kaldi and x-vectors for voice activity detection (VAD) and speaker diarisation.

bbc-speech-segmenter: Voice Activity Detection & Speaker Diarization A complete speech segmentation system using Kaldi and x-vectors for voice activit

BBC 16 Oct 27, 2022
SketchEdit: Mask-Free Local Image Manipulation with Partial Sketches

SketchEdit: Mask-Free Local Image Manipulation with Partial Sketches [Paper]โ€ƒ [Project Page]โ€ƒ [Interactive Demo]โ€ƒ [Supplementary Material] โ€ƒโ€ƒโ€ƒโ€ƒโ€ƒโ€ƒ Usag

215 Dec 25, 2022
Additional code for Stable-baselines3 to load and upload models from the Hub.

Hugging Face x Stable-baselines3 A library to load and upload Stable-baselines3 models from the Hub. Installation With pip Examples [Todo: add colab t

Hugging Face 34 Dec 10, 2022
A video scene detection algorithm is designed to detect a variety of different scenes within a video

Scene-Change-Detection - A video scene detection algorithm is designed to detect a variety of different scenes within a video. There is a very simple definition for a scene: It is a series of logical

1 Jan 04, 2022
Neural network for digit classification powered by cuda

cuda_nn_mnist Neural network library for digit classification powered by cuda Resources The library was built to work with MNIST dataset. python-mnist

Nikita Ardashev 1 Dec 20, 2021
[CVPR 2022 Oral] MixFormer: End-to-End Tracking with Iterative Mixed Attention

MixFormer The official implementation of the CVPR 2022 paper MixFormer: End-to-End Tracking with Iterative Mixed Attention [Models and Raw results] (G

Multimedia Computing Group, Nanjing University 235 Jan 03, 2023
Official Implementation of "Tracking Grow-Finish Pigs Across Large Pens Using Multiple Cameras"

Multi Camera Pig Tracking Official Implementation of Tracking Grow-Finish Pigs Across Large Pens Using Multiple Cameras CVPR2021 CV4Animals Workshop P

44 Jan 06, 2023
DANA paper supplementary materials

DANA Supplements This repository stores the data, results, and R scripts to generate these reuslts and figures for the corresponding paper Depth Norma

0 Dec 17, 2021
Convert dog pictures into various painting styles. Try LimnPet

LimnPet Cartoon stylization service project Try our service ยป Home page ยท Team notion ยท Members ๋ชฉ์ฐจ ํ”„๋กœ์ ํŠธ ์†Œ๊ฐœ ํ”„๋กœ์ ํŠธ ๋ชฉํ‘œ ์‚ฌ์šฉํ•œ ๊ธฐ์ˆ ์Šคํƒ๊ณผ ์ˆ˜ํ–‰๋„๊ตฌ ํŒ€์› ๊ตฌํ˜„ ๊ธฐ๋Šฅ ์ฃผ์š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€ ๊ธฐ๋Šฅ

LiJell 7 Jul 14, 2022
[CVPR2021 Oral] FFB6D: A Full Flow Bidirectional Fusion Network for 6D Pose Estimation.

FFB6D This is the official source code for the CVPR2021 Oral work, FFB6D: A Full Flow Biderectional Fusion Network for 6D Pose Estimation. (Arxiv) Tab

Yisheng (Ethan) He 201 Dec 28, 2022