๐Ÿ A Python lib for (de)serializing Python objects to/from JSON

Overview

Python versions Downloads PyPI version Code Coverage Scrutinizer Code Quality

  • Turn Python objects into dicts or (json)strings and back
  • No changes required to your objects
  • Easily customizable and extendable
  • Works with dataclasses, attrs and POPOs

๐Ÿ’— this lib? Leave a โ˜… and tell your colleagues!

Example of a model to serialize:

>>> @dataclass
... class Person:
...    name: str
...    birthday: datetime
...
>>> p = Person('Guido van Rossum', birthday_guido)

Example of using jsons to serialize:

>>> out = jsons.dump(p)
>>> out
{'birthday': '1956-01-31T12:00:00Z', 'name': 'Guido van Rossum'}

Example of using jsons to deserialize:

>>> p2 = jsons.load(out, Person)
>>> p2
Person(name='Guido van Rossum', birthday=datetime.datetime(1956, 1, 31, 12, 0, tzinfo=datetime.timezone.utc))

Installation

pip install jsons

Usage

import jsons

some_instance = jsons.load(some_dict, SomeClass)  # Deserialization
some_dict = jsons.dump(some_instance)  # Serialization

In some cases, you have instances that contain other instances that need (de)serialization, for instance with lists or dicts. You can use the typing classes for this as is demonstrated below.

from typing import List, Tuple
import jsons

# For more complex deserialization with generic types, use the typing module
list_of_tuples = jsons.load(some_dict, List[Tuple[AClass, AnotherClass]])

(For more examples, see the FAQ)

Documentation

Meta

Recent updates

1.6.0

  • Feature: Support for Python3.10.
  • Feature: Support for attrs.

1.5.1

  • Bugfix: ZoneInfo failed to dump if attached to a datetime.

1.5.0

  • Feature: Support for ZoneInfo on Python3.9+.
  • Change: microseconds are no longer stripped by default (thanks to pietrodn).

1.4.2

  • Bugfix: get_origin did not work with python3.9+ parameterized collections (e.g. dict[str, str]).

1.4.1

  • Bugfix: Types of attributes that are not in the constructor were not properly looked for. See issue #128.

1.4.0

  • Feature: DefaultDicts can now be deserialized.
  • Feature: Dicts with any (hashable) key can now be dumped and loaded.
  • Feature: Suppress specific warnings.
  • Bugfix: Loading a verbose-serialized object in a list could sometimes deserialize that object as a parent class.
  • Bugfix: Unwanted stringification of NoneValues is now prevented in Optionals and Unions with NoneType.
  • Bugfix: Fixed a bug with postponed annotations and dataclasses. See also Issue34776.
  • Bugfix: Types of attributes that are not in the constructor are now looked for in annotations.

1.3.1

  • Bugfix: Fixed bug where classmethods were included in the serialized result.

1.3.0

  • Feature: Added warn_on_fail parameter to default_list_deserializer that allows to continue deserialization upon errors.
  • Feature: Added transform that can transform an object to an object of another type.
  • Feature: Added serializer and deserializer for pathlib.Path (thanks to alexmirrington).
  • Change: When loading a list fails, the error message now points to the failing index.
  • Bugfix: Fixed bug when dumping an object with an innerclass.

1.2.0

  • Bugfix: Fixed bug with postponed typehints (PEP-563).
  • Bugfix: Loading an invalid value targeting an optional did not raise.
  • Bugfix: Loading a dict did not properly pass key_transformers.
  • Bugfix: Loading a namedtuple did not properly use key_transformers.
  • Bugfix: Utilized __annotations__ in favor _field_types because of deprecation as of 3.8.

1.1.2

  • Feature: Added __version__ which can be imported from jsons
  • Bugfix: Dumping a tuple with ellipsis failed in strict mode.

1.1.1

  • Feature: Added a serializer for Union types.
  • Change: Exceptions are more clear upon deserialization failure (thanks to haluzpav).
  • Change: You can no longer announce a class with a custom name.
  • Bugfix: Fixed dumping optional attributes.
  • Bugfix: Dataclasses inheriting from JsonSerializable always dumped their attributes as if in strict mode.

1.1.0

  • Feature: Added strict parameter to dump to indicate that dumping a certain cls will ignore any extra data.
  • Feature: When using dump(obj, cls=x), x can now be any class (previously, only a class with __slots__).
  • Feature: Support for dumping Decimal (thanks to herdigiorgi).
  • Feature: Primitives are now cast if possible when dumping (e.g. dump(5, str)).
  • Feature: Dumping iterables with generic types (e.g. dump(obj, List[str])) will now dump with respect to that types (if strict)
  • Feature: The default_dict serializer now optionally accepts types: Optional[Dict[str, type]].
  • Change: Improved performance when dumping using strict=True (up to 4 times faster!).
  • Bugfix: set_validator with multiple types did not work.

1.0.0

  • Feature: Added a serializer/deserializer for time.
  • Feature: Added a serializer/deserializer for timezone.
  • Feature: Added a serializer/deserializer for timedelta.
  • Feature: Added a serializer/deserializer for date.
  • Bugfix: Dumping verbose did not store the types of dicts (Dict[K, V]).
  • Bugfix: Loading with List (no generic type) failed.
  • Bugfix: Loading with Dict (no generic type) failed.
  • Bugfix: Loading with Tuple (no generic type) failed.

Contributors

Special thanks to the following contributors of code, discussions or suggestions:

pietrodn, georgeharker, aecay, bibz, thijss, alexmirrington, tirkarthi, marksomething, herdigiorgi, jochembroekhoff, robinklaassen, ahmetkucuk, casparjespersen, cypreess, gastlich, jmolinski, haluzpav, finetuned89

Comments
  • Should dump be able to also pass class type to dictionary

    Should dump be able to also pass class type to dictionary

    Say I have a class inheritance structure, and I want to generically be able to dump/load with the correct class types in the inheritance structure.

    @dataclass
    class A(object):
        foo: int
    
    @dataclass
    class B(A):
        bar: int
    

    Assume that when loading, I do now know which class type it was dumped from. I would have to analyse the content to determine which class to load as, and then pass this to the cls property of jsons.load method.

    Would it make sense to implement an optional flag when dumping to a dictionary that contains information of what class type it was dumped as, that can then be used for loading?

    feature 
    opened by casparjespersen 15
  • Poor Performance on Serialization

    Poor Performance on Serialization

    It seems like serialization using jsons.dump(obj) is at least 10 times slower than writing custom serialization method to each class. In my case, obj was a nested dataclasses and data was in the order of 100MBs.

    I can pull up some numbers but I just wanted to start a discussion if this is a known issue and if so, what might cause this?

    performance 
    opened by ahmetkucuk 14
  • Wrongly serialized utc datetime

    Wrongly serialized utc datetime

    The datetime instance is wrongly serialized if initialized from utcnow(). Example:

    dt_local = datetime.datetime.now()
    print(dt_local)
    # >>> 2019-02-16 17:48:34.714603
    
    print(jsons.dump(dt_local))
    # >>> 2019-02-16T17:48:34+01:00
    
    dt_utc = datetime.datetime.utcnow()
    print(dt_utc)
    # >>> 2019-02-16 16:48:34.715108
    
    print(jsons.dump(dt_utc))
    # >>> 2019-02-16T16:48:34+01:00
    # this last one is clearly wrong
    
    feature 
    opened by haluzpav 10
  • Fix unspecified List deserialization

    Fix unspecified List deserialization

    This code:

    import jsons
    from typing import List
    
    jsons.load(["Hello", "World"], List)
    

    would fail with a: TypeError: 'NoneType' object is not callable.

    This is because the bare List type contains an __args__[0] which is a TypeVar, which is not callable when deserializing.

    This pull request fixed that by checking if the __args__[0] is actually usable and not just a bare TypeVar.

    opened by stan-janssen 7
  • 'mro' of 'type' object needs an argument

    'mro' of 'type' object needs an argument

    UserWarning: Failed to dump attribute "<class 'MyClassName'>" of object of type "MyType". Reason: descriptor 'mro' of 'type' object needs an argument. Ignoring the attribute.

    Hi there, I'm trying to switch to this from jsonpickle and am running into a case in which the above failure happens hundreds of times on a variety of nested objects. Any idea what the issue is?

    bug 
    opened by T-P-F 6
  • #160 list deserializer propagates fork_inst

    #160 list deserializer propagates fork_inst

    resolves #160 Other container serializers/deserializers don't seem to be affected by this bug, since they seem to already handle fork_inst correctly, though I haven't tested this.

    opened by patrickguenther 5
  • Allow get_type_hints to work with dataclasses where __init__ is created automatically and using delayed annotations

    Allow get_type_hints to work with dataclasses where __init__ is created automatically and using delayed annotations

    as per https://bugs.python.org/issue34776

    there can be issues when doing something like:

    from __future__ import annotations
    from typing import Optional, get_type_hints
    
    @dataclass
    class Foo:
       a: Optional[int]
    
    
    get_type_hints(Foo.__init__)
    
    

    will give

    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "/usr/lib/python3.7/typing.py", line 1001, in get_type_hints
        value = _eval_type(value, globalns, localns)
      File "/usr/lib/python3.7/typing.py", line 260, in _eval_type
        return t._evaluate(globalns, localns)
      File "/usr/lib/python3.7/typing.py", line 464, in _evaluate
        eval(self.__forward_code__, globalns, localns),
      File "<string>", line 1, in <module>
    NameError: name 'Optional' is not defined
    

    Which causes such classes not to be able to read in by jsons.

    A workaround is to ensure that get_type_hints has the module dict of the class available to it.

    opened by georgeharker 4
  • performance issues

    performance issues

    Hi there,

    Loading a 1Go JSON file may take a while. Using the standard JSON API with the same JSON file may take approximatively 35 seconds.

    with jsons: time~ 20min

        with open(json_path, "r") as json_file:
            content = json_file.readlines()
            json_data = jsons.loads(content[0], CustomObject)
    

    The readlines function take 2 or 3 seconds.

    with json: time~ 35s

        with open(json_path, "r") as json_file:
            content = json.load(json_file)
            json_data = CustomObject(**content)
    

    What I'm doing wrong ?

    performance 
    opened by hugoliv 4
  • `jsons.dumps(np.array([0]))` reaches maximum recursion depth

    `jsons.dumps(np.array([0]))` reaches maximum recursion depth

    import jsons
    import numpy as np
    jsons.dumps(np.array([0]))
    

    causes the following error message to repeat:

    During handling of the above exception, another exception occurred:
    
    Traceback (most recent call last):
      File "/usr/local/anaconda3/lib/python3.7/site-packages/jsons/_main_impl.py", line 63, in dump
        return serializer(obj, cls=cls, **kwargs_)
      File "/usr/local/anaconda3/lib/python3.7/site-packages/jsons/serializers/default_object.py", line 56, in default_object_serializer
        **kwargs_)
      File "/usr/local/anaconda3/lib/python3.7/site-packages/jsons/serializers/default_dict.py", line 25, in default_dict_serializer
        strip_nulls=strip_nulls, **kwargs)
      File "/usr/local/anaconda3/lib/python3.7/site-packages/jsons/_main_impl.py", line 65, in dump
        raise SerializationError(str(err))
    jsons.exceptions.SerializationError: maximum recursion depth exceeded in comparison
    
    opened by shaunharker 4
  • Serializer of datetime with UTC

    Serializer of datetime with UTC

    Hi~, I using udatetime and jsons, the udatetime return UTC timezone is +00:00

    udatetime.utcnow()
    datetime.datetime(2019, 4, 12, 8, 31, 12, 471970, tzinfo=+00:00)
    

    So, is allow to add +00:00 to _datetime_offset_str in _datetime_impl.py ?

    if tzone.tzname(None) not in ('UTC', 'UTC+00:00'):
    

    edit to

    if tzone.tzname(None) not in ('UTC', 'UTC+00:00', '+00:00'):
    
    opened by abriko 4
  • Inherited class is lost while deserialization.

    Inherited class is lost while deserialization.

    Inherited class is lost while deserialization. In the example below, the object chmsg3 is serialized as a class ChatMessageSection with the weight attribute ('weight': 17, '-cls': 'main.ChatMessageSection'}]). But after deserialization the object becomes a ChatMessage.

    import jsons
    from dataclasses import dataclass
    from typing import List
    
    @dataclass
    class ChatUser:
        name: str
    
    @dataclass
    class ChatMessage:
        user: ChatUser
        msg_text: str
    
    @dataclass
    class ChatMessageSection(ChatMessage):
        weight: int
    
    @dataclass
    class ChatMessages:
        msg_list: List[ChatMessage]
    
    chmsg = ChatMessage(ChatUser("Thierry"), "Bonjour")
    chmsg2 = ChatMessage(ChatUser("Casimir"), "Hello")
    chmsg3 = ChatMessageSection(ChatUser("Leonard"), "Coucou", weight=17)
    chat_msgs = ChatMessages([chmsg, chmsg2, chmsg3])
    
    print(chat_msgs, end="\n\n")
    dumped = jsons.dump(chat_msgs, strip_microseconds=True, verbose=jsons.Verbosity.WITH_EVERYTHING)
    print(dumped, end="\n\n")
    instance = jsons.load(dumped)
    print(instance, end="\n\n")
    
    bug 
    opened by ThierryPfeiffer 4
  • DeserializationError: Invalid type:

    DeserializationError: Invalid type: "decimal.Decimal"

    Hey there,

    When "deserializating" a dictionary that contains a decimal.Decimal field, to a class that accepts that field as an int or a float, JSONS is throwing an exception:

    Traceback (most recent call last):
      File "testing-ground/decimal_jsons_test.py", line 19, in <module>
        a = jsons.load(dictionary, Something)
      File "testing-ground/env/lib/python3.10/site-packages/jsons/_load_impl.py", line 101, in load
        return _do_load(json_obj, deserializer, cls, initial, **kwargs_)
      File "testing-ground/env/lib/python3.10/site-packages/jsons/_load_impl.py", line 113, in _do_load
        result = deserializer(json_obj, cls, **kwargs)
      File "testing-ground/env/lib/python3.10/site-packages/jsons/deserializers/default_object.py", line 40, in default_object_deserializer
        constructor_args = _get_constructor_args(obj, cls, **kwargs)
      File "testing-ground/env/lib/python3.10/site-packages/jsons/deserializers/default_object.py", line 64, in _get_constructor_args
        key, value = _get_value_for_attr(obj=obj,
      File "testing-ground/env/lib/python3.10/site-packages/jsons/deserializers/default_object.py", line 94, in _get_value_for_attr
        result = sig_key, _get_value_from_obj(obj, cls, sig, sig_key,
      File "testing-ground/env/lib/python3.10/site-packages/jsons/deserializers/default_object.py", line 140, in _get_value_from_obj
        value = load(obj[sig_key], cls_, meta_hints=new_hints, **kwargs)
      File "testing-ground/env/lib/python3.10/site-packages/jsons/_load_impl.py", line 83, in load
        cls, meta_hints = _check_and_get_cls_and_meta_hints(
      File "testing-ground/env/lib/python3.10/site-packages/jsons/_load_impl.py", line 200, in _check_and_get_cls_and_meta_hints
        raise DeserializationError(msg, json_obj, cls)
    jsons.exceptions.DeserializationError: Invalid type: "decimal.Decimal", only arguments of the following types are allowed: str, int, float, bool, list, tuple, set, dict, NoneType
    

    But JSONS is capable of deserializing this dictionary just fine, we just need to modify the list of types it is supposed to be able to deserialize, here, we just need to add decimal.Decimal to the list of VALID_TYPES

    For this code:

    import jsons
    from decimal import Decimal
    from dataclasses import dataclass
    
    dictionary = {
        'value': Decimal(15.0)
    }
    
    @dataclass
    class Something:
        value: float
    
    a = jsons.load(dictionary, Something)
    print(a.value)
    

    Observed behavior: Jsons throws the above exception

    Expected behavior: a.value is initialized to 15.0

    Thanks

    opened by bziolo-dtiq 0
  • What's the key difference between `jsons` and `pydantic`?

    What's the key difference between `jsons` and `pydantic`?

    For serialization, one can export an instance of pydantic model to json

    from datetime import datetime
    from pydantic import BaseModel
    
    class BarModel(BaseModel):
        whatever: int
    
    class FooBarModel(BaseModel):
        foo: datetime
        bar: BarModel
    
    
    m = FooBarModel(foo=datetime(2032, 6, 1, 12, 13, 14), bar={'whatever': 123})
    print(m.json())
    #> {"foo": "2032-06-01T12:13:14", "bar": {"whatever": 123}}
    

    For deserialization, one can directly parse string into an instance of pydantic model

    from datetime import datetime
    from pydantic import BaseModel
    
    class User(BaseModel):
        id: int
        name = 'John Doe'
        signup_ts: datetime = None
    
    m = User.parse_raw('{"id": 123, "name": "James"}')
    print(m)
    #> id=123 signup_ts=None name='James'
    

    So, why jsons over pydantic?

    I can see that jsons being more lightweight for obvious reasons, but I wish to hear from the authors as well!

    opened by Raven888888 0
  • SerializationError: object of type 'abc' has no len()

    SerializationError: object of type 'abc' has no len()

    For some reason I cant seem to get a json dump for a pydantic baseModel class object

    eg:

    import jsons
    from pydantic import BaseModel 
    
    class abc(BaseModel):
        value: int
    
    d = abc(value=1)
    
    jsons.dump(d)
    

    OUTPUT SerializationError: object of type 'abc' has no len()

    EXPECTED The object should serialise fine.

    This is using jsons-1.6.3 and pydantic-1.9.1

    opened by duxbuse 2
  • How to make `jsons.dump()` treat `bytes` the same as Python3 `str`?

    How to make `jsons.dump()` treat `bytes` the same as Python3 `str`?

    How can one make jsons.dump() treat bytes the same as Python3 str? Some sort of serializer/class/setting change/override, perhaps?

    On my system (below) jsons.dump() prints my bytes type variables in a List-like format, even when assigning said variables a str literal (I think... maybe I don't understand Python3 properly? Quite possible). The pertinent excerpt:

    "{'originally_bytes_type': ['1', '2', '3', '4'], 'originally_str___type': '1234'}"

    All the context:

    $ cat jsons-dump-string-type-test.py
    #!/usr/bin/env python3
    
    from dataclasses import dataclass
    import jsons
    
    @dataclass
    class strs_and_bytes:
        originally_bytes_type : bytes
        originally_str___type : str
    
    sandb1 = strs_and_bytes \
    (
        originally_bytes_type = '1234' ,
        originally_str___type = '1234' ,
    )
    
    print('"' + str(jsons.dump(sandb1)) + '"')
    $ python3 jsons-dump-string-type-test.py
    "{'originally_bytes_type': ['1', '2', '3', '4'], 'originally_str___type': '1234'}"
    $ python3 --version
    Python 3.8.10
    $ pip3 install josons
    ^CERROR: Operation cancelled by user
    $ pip3 install jsons
    Requirement already satisfied: jsons in /usr/local/lib/python3.8/dist-packages (1.6.3)
    Requirement already satisfied: typish>=1.9.2 in /usr/local/lib/python3.8/dist-packages (from jsons) (1.9.3)
    $ lsb_release -a
    No LSB modules are available.
    Distributor ID:	Ubuntu
    Description:	Ubuntu 20.04.4 LTS
    Release:	20.04
    Codename:	focal
    $
    
    opened by johnnyutahh 2
  • add default (de)serializer for Literal values

    add default (de)serializer for Literal values

    I implemented these for a project I'm working on that uses jsons, then noticed https://github.com/ramonhagenaars/jsons/issues/170 and figured I may as well see if you like the implementation enough to go with it.

    I included the strictly_equal_literal as a compromise between correctness and utility.

    From https://peps.python.org/pep-0586/#equivalence-of-two-literals

    Two types Literal[v1] and Literal[v2] are equivalent when both of the following conditions are true:

    1. type(v1) == type(v2)
    2. v1 == v2

    I took that to mean that for a value to really match a literal it should match in both type and value. The only problem with that is that I've found it to be very useful to allow jsons to "coerce" values that are equal in value into the literal value, the use case that prompted me to implement this actually relies on that behaviour.

    opened by buckley-w-david 0
  • In nested objects, `load` is only called for the root object instead of being called for each one

    In nested objects, `load` is only called for the root object instead of being called for each one

    Hi, I have a problem where I'm trying to deserialize nested objects, and have each of their respective load functions trigger.

    Code example:

    from typing import List
    import jsons
    
    class B(jsons.JsonSerializable):
        c: List[str]
        
        @classmethod
        def load(cls, json_obj, **kwargs):
            print("Loading", cls)
            return jsons.load(json_obj, cls, **kwargs)
    
    class A(jsons.JsonSerializable):
        b: B
        
        @classmethod
        def load(cls, json_obj, **kwargs):
            print("Loading", cls)
            return jsons.load(json_obj, cls, **kwargs)
    
    obj = {'b': {'c': ['d', 'd']}}
    
    jsons.load(obj, A) # Nothing printed
    A.load(obj) # Only "Loading <class '__main__.A'>" is printed
    

    What I would expect as default behavior in this case is to have both Loading <class ...B> and Loading <class ...A> printed. Is there any way to achieve this behavior?

    Thanks!

    opened by itaiperi 1
Releases(v1.6.3)
  • v1.6.3(Jun 9, 2022)

  • v1.6.2(May 11, 2022)

  • v1.6.1(Jan 9, 2022)

    • Bugfix: Loading dicts with hashed keys could cause an error due to being loaded twice (thanks to georgeharker).
    • Bugfix: IntEnums were not serialized with their names when use_enum_name=True (thanks to georgeharker).
    • Bugfix: Named tuples did not use typing.get_type_hints for getting the types, causing trouble in future annotations (thanks to georgeharker).
    Source code(tar.gz)
    Source code(zip)
  • v1.6.0(Oct 31, 2021)

  • v1.5.1(Sep 1, 2021)

  • v1.5.0(Jul 18, 2021)

  • v1.4.2(Apr 10, 2021)

  • v1.4.1(Mar 31, 2021)

  • v1.4.0(Feb 6, 2021)

    • Feature: DefaultDicts can now be deserialized.
    • Feature: Dicts with any (hashable) key can now be dumped and loaded.
    • Feature: Suppress specific warnings.
    • Bugfix: Loading a verbose-serialized object in a list could sometimes deserialize that object as a parent class.
    • Bugfix: Unwanted stringification of NoneValues is now prevented in Optionals and Unions with NoneType.
    • Bugfix: Fixed a bug with postponed annotations and dataclasses. See also Issue34776.
    • Bugfix: Types of attributes that are not in the constructor are now looked for in annotations.
    Source code(tar.gz)
    Source code(zip)
  • v1.3.1(Jan 4, 2021)

  • v1.3.0(Oct 9, 2020)

    • Feature: Added warn_on_fail parameter to default_list_deserializer that allows to continue deserialization upon errors.
    • Feature: Added transform that can transform an object to an object of another type.
    • Feature: Added serializer and deserializer for pathlib.Path (thanks to alexmirrington).
    • Change: When loading a list fails, the error message now points to the failing index.
    • Bugfix: Fixed bug when dumping an object with an innerclass.
    Source code(tar.gz)
    Source code(zip)
  • v1.2.0(Jul 3, 2020)

    • Bugfix: Fixed bug with postponed typehints (PEP-563).
    • Bugfix: Loading an invalid value targeting an optional did not raise.
    • Bugfix: Loading a dict did not properly pass key_transformers.
    • Bugfix: Loading a namedtuple did not properly use key_transformers.
    • Bugfix: Utilized __annotations__ in favor _field_types because of deprecation as of 3.8.
    Source code(tar.gz)
    Source code(zip)
  • v1.1.1(Dec 22, 2019)

    • Feature: Added a serializer for Union types.
    • Change: Exceptions are more clear upon deserialization failure (thanks to haluzpav).
    • Change: You can no longer announce a class with a custom name.
    • Bugfix: Fixed dumping optional attributes.
    • Bugfix: Dataclasses inheriting from JsonSerializable always dumped their attributes as if in strict mode.
    Source code(tar.gz)
    Source code(zip)
  • v1.1.0(Dec 4, 2019)

    • Feature: Added strict parameter to dump to indicate that dumping a certain cls will ignore any extra data.
    • Feature: When using dump(obj, cls=x), x can now be any class (previously, only a class with __slots__).
    • Feature: Support for dumping Decimal (thanks to herdigiorgi).
    • Feature: Primitives are now cast if possible when dumping (e.g. dump(5, str)).
    • Feature: Dumping iterables with generic types (e.g. dump(obj, List[str])) will now dump with respect to that types (if strict)
    • Feature: The default_dict serializer now optionally accepts types: Optional[Dict[str, type]].
    • Change: Improved performance when dumping using strict=True (up to 4 times faster!).
    • Bugfix: set_validator with multiple types did not work.
    Source code(tar.gz)
    Source code(zip)
  • v1.0.0(Oct 7, 2019)

    • Feature: Added a serializer/deserializer for time.
    • Feature: Added a serializer/deserializer for timezone.
    • Feature: Added a serializer/deserializer for timedelta.
    • Feature: Added a serializer/deserializer for date.
    • Bugfix: Dumping verbose did not store the types of dicts (Dict[K, V]).
    • Bugfix: Loading with List (no generic type) failed.
    • Bugfix: Loading with Dict (no generic type) failed.
    • Bugfix: Loading with Tuple (no generic type) failed.
    Source code(tar.gz)
    Source code(zip)
    jsons-1.0.0.tar.gz(59.06 KB)
Library management using python & MySQL

Library management using python & MySQL Dev/Editor: Pavan Ananth Sharma & MK Akash Introduction: This is an intermediate project which is a user-frie

Pavan Ananth Sharma 2 Jul 05, 2022
tetrados is a tool to generate a density of states using the linear tetrahedron method from a band structure.

tetrados tetrados is a tool to generate a density of states using the linear tetrahedron method from a band structure. Currently, only VASP calculatio

Alex Ganose 1 Dec 21, 2021
An improved version of the common ห™pacman -Sห™

BetterPacmanLook An improved version of the common pacman -S. Installation I know that this is probably one of the worst solutions and i will be worki

1 Nov 06, 2021
Diff Match Patch is a high-performance library in multiple languages that manipulates plain text.

The Diff Match and Patch libraries offer robust algorithms to perform the operations required for synchronizing plain text. Diff: Compare two blocks o

Google 5.9k Dec 30, 2022
Bitflip Fault Simulation Platform by Daniele Rizzieri (2021)

BFSP [v1.05] Bitflip Fault Simulation Platform by Daniele Rizzieri (2021) The platform injects a random bitflip in each of N copies of a binary file.

Daniele Rizzieri 2 Nov 05, 2022
Python library for creating PEG parsers

PyParsing -- A Python Parsing Module Introduction The pyparsing module is an alternative approach to creating and executing simple grammars, vs. the t

Pyparsing 1.7k Jan 03, 2023
contextlib2 is a backport of the standard library's contextlib module to earlier Python versions.

contextlib2 is a backport of the standard library's contextlib module to earlier Python versions. It also sometimes serves as a real world proving gro

Jazzband 35 Dec 23, 2022
On this repo, you'll find every codes I made during my NSI classes (informatical courses)

๐Ÿ‘จโ€๐Ÿ’ป ๐Ÿ‘ฉโ€๐Ÿ’ป school-codes On this repo, you'll find every codes I made during my NSI classes (informatical courses) French for now since this repo is d

EDM 1.15 3 Dec 17, 2022
Manually Install Python 2.7 pip without any problem !

Python2.7_install_pip Manually Install Python 2.7 pip without any problem ! Download installPip.py to your system and Run the code using this Command

Ali Jafari 1 Dec 09, 2021
Script to work around some quirks of the blender obj importer

ObjFix 1.0 (WIP) Script to work around some quirks of the blender obj importer Installation Download this repo In Blender, press "Edit" on the top-bar

Red_3D 4 Nov 20, 2021
A Python package that provides astronomical constants.

AstroConst A Python package that provides astronomical constants. The code is being developed by Marc van der Sluys of the department of Astrophysics

Marc van der Sluys 1 Jan 10, 2022
High-level bindings to the Valhalla framework.

Valhalla for Python This spin-off project simply offers improved Python bindings to the fantastic Valhalla project. Installation pip install valhalla

GISโ€Šโ€ขโ€ŠOPS 20 Dec 13, 2022
App to decide weekly winners in H2H 1 Win (9 Cat)

Fantasy Weekly Winner for H2H 1 Win (9 Cat) Yahoo Fantasy API Read

Sai Atmakuri 1 Dec 31, 2021
A simple string parser based on CLR to check whether a string is acceptable or not for a given grammar.

A simple string parser based on CLR to check whether a string is acceptable or not for a given grammar.

Bharath M Kulkarni 1 Dec 15, 2021
A community-driven python bot that aims to be as simple as possible to serve humans with their everyday tasks

JARVIS on Messenger Just A Rather Very Intelligent System, now on Messenger! Messenger is now used by 1.2 billion people every month. With the launch

Swapnil Agarwal 1.3k Jan 07, 2023
Block the annoying Token Grabbers on your discord

General We have seen that in the last time many discord servers are infected by fake discord nitro links we want to put an end to this and have develo

BadTiger Network 2 Jul 16, 2022
Python: Wrangled and unpivoted gaming datasets. Tableau: created dashboards - Market Beacon and Playerโ€™s Shopping Guide.

Created two information products for GameStop. Using Python, wrangled and unpivoted datasets, and created Tableau dashboards.

Zinaida Dvoskina 2 Jan 29, 2022
:fishing_pole_and_fish: List of `pre-commit` hooks to ensure the quality of your `dbt` projects.

pre-commit-dbt List of pre-commit hooks to ensure the quality of your dbt projects. BETA NOTICE: This tool is still BETA and may have some bugs, so pl

Offbi 262 Nov 25, 2022
TB Set color display - Add-on for Blender to set multiple objects and material Display Color at once.

TB_Set_color_display Add-on for Blender with operations to transfer name between object, data, materials and action names Set groups of object's or ma

1 Jun 01, 2022
API to summarize input text

summaries API to summarize input text normal run $ docker-compose exec web python -m pytest disable warnings $ docker-compose exec web python -m pytes

Brad 1 Sep 08, 2021