Metadata-Version: 2.4
Name: xctype
Version: 0.0.3
Summary: Python package for explicit C types
Project-URL: Homepage, https://github.com/sebastien-riou/xctype
Project-URL: Bug Tracker, https://github.com/sebastien-riou/xctype/issues
Author: Sebastien Riou
License-File: LICENSE
Classifier: Development Status :: 4 - Beta
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Requires-Python: >=3.10
Requires-Dist: pysatl>=1.2.6
Requires-Dist: sympy
Provides-Extra: doc
Requires-Dist: ruff; extra == 'doc'
Requires-Dist: sphinx; extra == 'doc'
Description-Content-Type: text/markdown

# xctype
Explicit C types for Python

This is a proof of concept / work in progress for now, see [roadmap](#roadmap).

## Installation
````
python3 -m pip install xctype-***.whl
````

## Roadmap

- get_types: return types used in the struct (with deep argument similar to to_str)
- to_asciidoc
    - raw_bytes option: display values as hexstr 
- to_c: generate typedef
- check_offsets_against_c: generate a program to check struct members offsets
- doc: think about how to attach a doc to each member, preferably in a python/sphinx friendly way to leverage IDEs
- replace make_struct by a decorator ?
- think about way for user to add code to the struct to manipulate it / validate it (struct with CRCs for example)
- replace sympy by plain python eval ? allows to size stuff based on other stuff size for example. maybe no point making this more flexible than C...

