No project description provided
Project description
Introduction
python script for generating C# files for Newtonsoft.Json deserialization from python enums and annotated classes.
Installation
- from pip
pip install cs_generator
- download package and run setup.py
python setup.py install
Usage
- Annotate classes that are to be converted to C#; should be annotated on class level.
- All used enum types will be converted (no annotation is needed)
- If reference keeping is used in deserialization, set ref_keeping to True
from enum import Enum
from typing import List
from cs_generator import CSGenerator
class Job(Enum):
Teachert = 0
Engineer = 1
Doctor = 2
class Person:
name: str
age: int
job: Job
hobbies: List[str]
def __init__(self, name, age, job, hobbies):
self.name = name
self.age = age
self.job = job
self.hobbies = hobbies
csg = CSGenerator(Person, ref_keeping=True)
csg.export('TestNamespace', dest_folder)
# or
p = Person('Jack', 33, Job.Teacher, ['Swimming', 'Video Games', 'Fishing'])
csg = CSGenerator(p, ref_keeping=True)
csg.export('TestNamespace', dest_folder)
output cs script
using Newtonsoft.Json;
namespace TestNamespace
{
public enum Job
{
Teacher = 0,
Engineer = 1,
Doctor = 2
}
}
using System.Collections.Generic;
using Newtonsoft.Json;
namespace TestNamesapce
{
public partial class Person
{
public readonly string name;
public readonly int age;
public readonly Job job;
public readonly IList<string> hobbies;
[JsonConstructor]
public Person(
string name,
int age,
Job job,
List<string> hobbies
)
{
this.name = name;
this.age = age;
this.job = job;
this.hobbies = hobbies;
}
}
}
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
cs_generator-1.0.3.tar.gz
(5.5 kB
view hashes)
Built Distribution
Close
Hashes for cs_generator-1.0.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 26768c2ea76086467e3e90105336c3de691246ba7e00e2fb59d8c06f4a3ca0d1 |
|
MD5 | d4beda107c8593224964d33c92eb6de8 |
|
BLAKE2b-256 | e3eb0864ae3d2904bbcb92e1f9eb72ee544b3c763581fbcf9db131aaf2909e55 |