Commit graph

82 commits

Author SHA1 Message Date
Kumi 5c3202305a
Update limedriver submodule to latest commit
Upgraded the 'limedriver' submodule to incorporate the latest fixes and
improvements from the upstream repository, ensuring compatibility and
enhanced stability.
2024-02-17 18:21:04 +01:00
Kumi fc536126bc
Encode device parameter before channel retrieval
Fixed an issue in the `get_channels_for_device` function where the input
device name wasn't being encoded before passing it to the underlying C
function `getChannelsFromInfo`. This change ensures compatibility with
the expected string encoding, preventing potential runtime errors
related to string handling across the Python-C boundary.
2024-02-17 18:06:55 +01:00
Kumi 8874795fd0
Set default parameter for get_channels_for_device
Optional device specifier: Adjusted get_channels_for_device function to
include a default empty string parameter. Enables calls without
specifying a device, reducing the need for client code to handle default
cases explicitly.
2024-02-17 18:04:10 +01:00
Kumi ce89c445d7
Enhance device channel handling
Introduced a new utility function to extract and return the number of
channels associated with a given device, improving the driver's ability
to handle device-specific configurations. Also expanded the C++ bindings
by importing the pair class, which is pivotal for representing the
channel information. This enhancement facilitates more granular control
and paves the way for future features that may require detailed channel
info.
2024-02-17 18:02:59 +01:00
Kumi 0696cc3b20
Add device property to PyLimeConfig
Introduced a getter and setter for the 'device' property, allowing for
UTF-8 encoding/decoding of the device string in the PyLimeConfig class.
This enhances string handling consistency across the interface.
2024-02-17 17:46:07 +01:00
Kumi f48c034011
Bump version and add device listing
Updated the project version reflecting new features. Extended the
LimeConfig_t struct to include a device string supporting device
specification. Introduced a new function `get_device_list` in the Python
binding, allowing users to retrieve a list of available devices,
enhancing usability. This change improves user interactions with the
hardware, making device management more intuitive.
2024-02-17 17:38:18 +01:00
jupfi a47961e311 Added manual selection of tx rx matching. 2024-02-12 21:36:32 +01:00
jupfi 1393cd6121 Newest commit. 2024-02-11 09:14:52 +01:00
jupfi 0f67c5065b Merge branch 'main' of github.com:nqrduck/LimeDriverBindings 2024-02-11 09:04:47 +01:00
jupfi 761c4756e8 Added binding for channel selection. 2024-02-11 09:04:33 +01:00
Julia P e0f0f34b53
Merge pull request #3 from nqrduck/debian2
Making it build on Debian
2024-02-10 20:07:58 +01:00
Kumi 13fe781396
Add GitHub Action for Ubuntu package build
Introduced a new GitHub workflow to automate the build process for a
Python package on Ubuntu. The workflow triggers on push and pull
requests and includes steps for updating the package list, installing
essentials like git, setting up Python 3.10, and handling dependencies.
It also includes the package installation and a post-install test to
confirm successful import. This automation ensures code integrity with
each update and simplifies the integration process for contributors.
2024-02-10 20:03:23 +01:00
Kumi 1e8ff8684d
Updated CXX env var and removed redundant
library_dirs in setup

Enhanced the 'CXX' environment variable assignment in setup.py to
include the '-shlib' flag for shared library support. Also, streamlined
the Extension configuration by eliminating the now unnecessary
specification of default library directories, simplifying the build
process.

Refactors setup configuration for efficiency and compatibility with
shared libraries.
2024-02-10 20:00:27 +01:00
Kumi 5f9f62df76
Update LimeDriver submodule URL to HTTPS
Switched the submodule URL in .gitmodules for 'LimeDriver' from SSH to
HTTPS to improve compatibility for cloning without requiring SSH keys.
This change should facilitate easier access for contributors and
automated build systems that may not have SSH key setups.
2024-02-10 18:17:46 +01:00
jupfi 9d56c0b3ab Merge branch 'main' of github.com:nqrduck/LimeDriverBindings 2024-02-10 18:13:31 +01:00
jupfi 8263eaf9d0 Newest LimeDriver 2024-02-10 18:13:27 +01:00
Kumi 0568a820af
Simplify build and link HDF5 libraries
Removed custom BuildExtCommand class from setup.py, simplifying the
build process by relying on standard build_ext behavior. The custom
command handling of submodule initialization and build extension
modifications were deemed unnecessary. Additionally, extended the
library dependencies to include 'hdf5_cpp' and 'hdf5' to ensure correct
linking for HDF5 support. This change makes the build process more
straightforward and maintainable.
2024-02-10 18:02:07 +01:00
jupfi a5f3ad53b7 Removed another debug print. 2024-02-10 17:55:02 +01:00
jupfi 052800f717 Removed debug prints 2024-02-10 17:48:49 +01:00
Kumi aaa68e6973
Removed redundant Ubuntu-specific build workflow;
updated pip install flag

The project's CI configuration experienced two main updates:
- The Ubuntu-specific Python package build workflow was entirely
removed, likely due to standardization across different environments or
redundancy with other existing workflows.
- Python package installation in the main workflow was amended to
include the `--break-system-packages` pip flag, which indicates a shift
in handling dependencies that may conflict with system packages.

These changes may streamline the CI/CD process and address dependency
conflicts during package installation.
2024-02-10 16:36:18 +01:00
Kumi 853457de78
Updated CI and package import system
Refactored the CI workflows to include package installation and import
testing. Ensured package is importable after installation by creating a
new '__main__.py' module to check imports. This adds an extra validation
step to the CI process, catching potential import issues early. Import
statements in '__init__.py' have also been updated to use 'as' for
clarity and namespace control.
2024-02-10 16:32:58 +01:00
Kumi fb296e1ecd
Updated limedriver submodule to latest commit
Upgraded the limedriver submodule reference to incorporate recent
enhancements and bug fixes. This update ensures compatibility with the
main project and improves stability.
2024-02-10 16:28:28 +01:00
Kumi fd52d145bc
The Return of the H5C++ 2024-02-10 16:27:23 +01:00
Julia Pfitzer 8771c052da
Merge pull request #2 from nqrduck/readme
Readme
2024-02-10 15:02:34 +01:00
Kumi 6074ca85a6
Updated README with submodule init instructions
Expanded the setup section in the README to include instructions for
initializing the LimeDriver submodule before building and installing the
Python bindings. This ensures users don't encounter issues due to
missing dependencies when trying to install the package.
2024-02-10 15:00:57 +01:00
Kumi 99030b5d44
Merge branch 'main' of github.com:nqrduck/LimeDriverBindings 2024-02-10 14:57:04 +01:00
Julia Pfitzer dcec0e464d
Update LICENSE 2024-02-10 14:56:32 +01:00
Kumi bee60673fb
Add README with setup and usage instructions for
Python bindings

Introduce a comprehensive README for the Python bindings project of the
LimeDriver library. The README includes required dependencies for both
Debian/Ubuntu and Arch Linux systems, and a step-by-step guide to
creating a virtual environment, installing the package using pip, and a
basic usage example with Python code demonstrating how to interact with
the LimeDriver library. Documentation facilitates easier onboarding and
usage of the Python bindings for new users.
2024-02-10 14:56:32 +01:00
Kumi a5b812db70
Updated limedriver to latest commit
Upgraded the limedriver subproject to the newest commit hash for
enhanced stability and performance improvements. This update ensures
compatibility with the latest hardware revisions and resolves known
issues identified in the previous version.
2024-02-10 14:55:59 +01:00
Kumi d1b8c79acb
Removed static HDF5 library linkage in build
process

Reflecting a shift toward dynamic library usage, the build system has
been updated to omit hard-coded links to the HDF5 libraries. This change
simplifies dependency management and increases flexibility in various
build environments. It's important to ensure dependent projects are
aware of this change, as they might need to explicitly link HDF5 if they
don't dynamically load it.
2024-02-09 15:43:27 +01:00
Kumi 7fe4ccdf38
Disabled forced compiler override in setup
Commented out the hardcoded compiler environment setting in the setup
script to allow for greater flexibility in users' build environments.
Letting the user or the system decide the appropriate C++ compiler
prevents potential conflicts with predefined environment configurations.
2024-02-09 15:40:34 +01:00
Kumi c0d1fbbf66
Enhance extension building in setup
Updated the `BuildExtCommand` class in `setup.py` to append `rpath`
flags and link against `hdf5` libraries when building extensions. This
ensures that the shared libraries are correctly located at runtime and
resolves potential linkage issues with HDF5-related extensions for a
smoother installation and deployment process.
2024-02-09 15:33:51 +01:00
Kumi 75b7340354
Add library_dirs to extension build configuration
Enhanced the build process by specifying the library directories in
setup.py. This ensures the linker can locate all relevant libraries for
the 'limedriver.binding' extension, preventing potential build issues on
systems where libraries are not in the default search path.
2024-02-09 15:30:29 +01:00
Kumi 507c7538c6
Removed hdf5_cpp dependency from setup
Optimized the build process by removing the unnecessary 'hdf5_cpp'
library from the extension module configuration. This change simplifies
linkage and can potentially reduce compile-time and binary size.
2024-02-09 15:21:10 +01:00
Kumi a137c3b914
Update Ubuntu workflow to include liblimesuite-dev
Ensured that liblimesuite-dev package is installed as part of the
dependencies for our GitHub Actions workflow. This is to address missing
development headers required for interfacing with LimeSuite in our
Python package build process.
2024-02-09 15:16:54 +01:00
Kumi 4b2226e3f9
Add HDF5 include path to limedriver extension
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.
2024-02-09 15:12:02 +01:00
Kumi a85671e1af
Updated submodule commands and linked against
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.
2024-02-09 14:43:35 +01:00
Kumi 7572583efb
Added hdf5 library dependency to limedriver
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.
2024-02-09 14:04:28 +01:00
Kumi a61875e9a8
Fixed main branch 2024-02-09 13:47:11 +01:00
Kumi 7aa4df9d2c
Standardize Python version syntax in CI config
Ensure the Python version is specified as a string in the Ubuntu
workflow configuration to prevent potential parsing issues by the
setup-python GitHub Action. This update aligns with the recommended
practices for YAML file consistency and compatibility.
2024-02-09 13:07:33 +01:00
Kumi 41bf2603d8
Refactor CI setup for Python 3.10
Upgraded the GitHub Actions workflow to explicitly set up Python 3.10.
Simplified the installation process by using pip to upgrade and install
necessary Python packages such as h5py, setuptools, wheel, and build,
rather than installing individual Python and pip packages via apt-get.
This ensures a more standardized and up-to-date environment for CI
processes. Removed explicit python3 references in favor of the
actions/setup-python environment, aligning with the GitHub Actions best
practices.
2024-02-09 13:05:36 +01:00
Kumi e0be3eec25
Updated Python command to specify version 3 for
build step

Modified the build command in the CI workflow to explicitly call Python
3 to ensure compatibility and avoid potential conflicts with systems
where Python 2 is the default. This change aligns the build process with
modern Python practices and reduces ambiguity in environments where
multiple Python versions are available.
2024-02-09 13:01:07 +01:00
Kumi 5ccb4e080b
Expand Ubuntu workflow setup with venv and Python
alias

Enhanced the GitHub Actions workflow for the Ubuntu environment by
including python3-venv to facilitate virtual environment management.
Additionally, established python-is-python3 to standardize the Python
command, ensuring consistency and avoiding potential versioning issues
across different setups.
2024-02-09 12:57:41 +01:00
Kumi df2341f08d
Enhance CI setup with python3-build addition
Upgraded our GitHub Actions CI Python package workflow for Ubuntu by
including the `python3-build` package during the dependency installation
phase. This addition ensures compatibility with projects that require
this specific package for building Python applications.
2024-02-09 12:55:44 +01:00
Kumi d13645c3a5
Add GitHub workflow for Ubuntu build; remove
token, update submodule

Introduced a new GitHub Actions workflow to automate Python package
builds on Ubuntu environments upon push or pull request events. This
addition ensures the compatibility of the package on the Ubuntu platform
and streamlines the continuous integration process.

Updated the limedriver submodule to the latest commit, keeping the
project in sync with recent upstream changes and maintaining the
integrity of external dependencies.
2024-02-09 12:53:59 +01:00
Kumi c98ffcb56c
Merging main 2024-02-09 12:44:08 +01:00
Kumi 67aaf961c6
Updated limedriver subproject and Python
dependencies

Upgraded the limedriver subproject to bring in latest enhancements and
fixes. Added 'h5py' and 'matplotlib' to the list of Python project
dependencies, ensuring the availability of necessary libraries for data
handling and plotting functionalities within our project.
2024-02-09 12:41:57 +01:00
Julia Pfitzer 12834a785a
Merge pull request #1 from nqrduck/new_structure
New structure
2024-02-09 11:10:17 +01:00
jupfi b00362aa16 remobe debug prints. 2024-02-09 11:06:56 +01:00
jupfi 0b37e4b861 Removed init method since this is done by the c++ method. 2024-02-09 11:05:35 +01:00