Extended the include directories for the limedriver binding in setup.py
to address linking issues with HDF5 serialization. This is a temporary
workaround to ensure compatibility and successful building of the
extension, as indicated by the 'TODO' comment highlighting the need for
a cleaner solution. Further refinement is required to integrate HDF5 in
a more elegant manner.
hdf5_cpp library
Enabled the use of shell in 'git submodule' commands to ensure
cross-platform compatibility in the setup process. Also revised the
linked libraries for the 'limedriver.binding' extension, replacing
'hdf5' with 'hdf5_cpp' to properly utilize the C++ HDF5 library
interface. This change is expected to enhance compatibility and
performance when interacting with HDF5 files.
binding
Extended the library dependencies for the limedriver binding in setup.py
to include the hdf5 library, ensuring compatibility with data handling
features that require HDF5 support. This change addresses the need for
advanced data storage and management capabilities within the limedriver
interface.
- Standardized the C++ compiler across build environments by setting it in `setup.py`, ensuring consistent compilation of Cython extensions.
- Transitioned to using `setuptools.build_meta` as the build backend in `pyproject.toml` for enhanced package build processes.
- Modified the extension module path in `setup.py` to align with the new Python binding structure.
- Introduced Python property decorators to `PyLimeConfig` class in `limedriver.pyx` for getter methods, enhancing the Pythonic interface of the Cython module.
- Facilitated direct import of the binding in `__init__.py`, streamlining the usage of the `limedriver` package.
The .gitignore file now ignores C++ build artifacts alongside existing ones. In setup.py, the build configuration for 'limedriver' was modified to include a new C++ source file, indicating a shift to or expansion of C++ code usage within the project. This change prepares the build process to handle and compile C++ code, potentially for performance improvements or new functionality that leverages C++ capabilities.
Enhanced the .gitignore to filter out additional build artifacts and Python cache files, promoting a cleaner repository state. Introduced a basic project structure with a new pyproject.toml, defining metadata and build requirements for the 'limedriver' Python package. Also added a LICENSE file and a custom setup.py which automates the retrieval and build of 'limedriver' submodules, streamlining the set-up for development and ensuring consistent builds across environments. These changes lay the groundwork for further development and distribution of the project.