New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

serpyco

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

serpyco

Fast serialization of dataclasses using Cython

  • 1.3.13
  • PyPI
  • Socket score

Maintainers
1

============================================ Serpyco: a serializer for python dataclasses

What is Serpyco ?

Serpyco is a serialization library for Python 3.6+ dataclasses <https://docs.python.org/3/library/dataclasses.html>_ that works just by defining your dataclasses:

.. code-block:: python

import dataclasses
import typing

import serpyco

@dataclasses.dataclass
class Example(object):
    name: str
    num: int
    tags: typing.List[str]


serializer = serpyco.Serializer(Example)

result = serializer.dump(Example(name="foo", num=2, tags=["hello", "world"]))
print(result)

{'name': 'foo', 'num': 2, 'tags': ['hello', 'world']}

Serpyco works by analysing the dataclass fields and can recognize many types : List, Set, Tuple, Optional, Union... You can also embed other dataclasses in a definition.

The main use-case for Serpyco is to serialize objects for an API, but it can be helpful whenever you need to transform objects to/from builtin Python types.

Serpyco is tested for Python versions 3.8 to 3.12.

Features

  • Serialization and unserialization of dataclasses
  • Validation of input/output data
  • Very fast
  • Extensible through custom encoders

Installing

Serpyco is best installed via pip:

.. code-block:: shell

pip install serpyco

It has only 3 (4 with python 3.6 dataclasses backport) dependencies:

  • rapid-json: used for data validation and fast JSON dump/load
  • python-dateutil: used for serializing datetime objects
  • typing_inspect: used to inspect types as needed to create serializers

Documentation

  • Documentation <https://sgrignard.gitlab.io/serpyco/docs>_
  • API Reference <https://sgrignard.gitlab.io/serpyco/docs/api.html>_

Contributing

Serpyco is written using Python <https://www.python.org>_ and Cython <https://www.cython.org>_ for parts needing speed.

  • Issue tracker <https://gitlab.com/sgrignard/serpyco/issues>_
  • Source code <https://gitlab.com/sgrignard/serpyco>_

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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc