Commit graph

94 commits

Author SHA1 Message Date
jupfi
ff86d8ebff Set up QEMU 2024-04-21 12:50:00 +02:00
jupfi
4e95820658 Activated venv again. 2024-04-21 12:24:43 +02:00
jupfi
8dc3d32fed Fixed typo. 2024-04-21 12:18:23 +02:00
jupfi
3d54fc30af Updated automatic deployment. 2024-04-21 12:16:39 +02:00
jupfi
620b5809ee Updated to cibuildwheel. 2024-04-20 12:10:36 +02:00
jupfi
815a3eb682 Build wheels with cibuildwheel 2024-04-20 12:05:07 +02:00
jupfi
d71e29a901 Maybe like this? 2024-04-20 11:10:02 +02:00
jupfi
5c53365f2f Added submodule checkout 2024-04-20 11:02:18 +02:00
jupfi
8d625619d7 Updated dependencies for deployment. 2024-04-20 10:56:45 +02:00
jupfi
bb97340bca Automatic PyPi deployment. 2024-04-20 10:53:00 +02:00
jupfi
09bcd15776 Automatic PyPi deployment. 2024-04-20 10:52:40 +02:00
Julia P
3d0481a9d4
Merge pull request #4 from nqrduck/get-device-list
Bump version and add device listing.

Tested with LimeSDR USB and LimeSDR Mini  2.0 connected  to one PC. Devices could be retrieved using the get_devices_list()  method. The  active  device could  be  changed using the device  property of the PyLimeConfig object.
2024-02-17 18:25:13 +01:00
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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