A Python module to process Qualitative Data Exchange (QDPX) XML files.
Project description
pyqdpx
A Python module to process Qualitative Data Exchange (QDPX) XML files, which are zip-compressed archives containing a project.qde XML file and a Sources directory.
Features
- List source files within a
.qdpxarchive. - Retrieve content of individual source files.
- Load and manipulate
project.qdeXML data. - Manage users (add, list) within the project.
- Manage qualitative codes (add, modify, delete, navigate hierarchy).
- Save modifications back to the
.qdpxarchive, ensuring data integrity.
Installation
You can install pyqdpx using pip:
pip install pyqdpx
If you want to install from source for development:
git clone https://github.com/DEPT-metagenom/pyqdpx.git
cd pyqdpx
pip install .
Usage
Here's a quick example of how to use pyqdpx:
from pyqdpx import QDPX, User, Code
import os
# Assume 'my_project.qdpx' exists and is a valid QDPX file
# For demonstration, you might create a dummy file first as in your tests.
# Initialize the QDPX object
qdpx_file = QDPX("my_project.qdpx")
# Get the QDE project
project = qdpx_file.get_project()
if project:
print("Project Title:", project._bs4_obj.find('Title').string)
# List users
print("\nUsers:")
for user_guid, user_obj in project.users.items():
print(f"- {user_obj.name} (ID: {user_obj.id})")
# Add a new user
new_user = User(id="AL", name="Ada Lovelace")
project.add_user(new_user)
print(f"\nAdded new user: {new_user.name}")
# Print code tree
print("\nCode Tree:")
project.print_code_tree()
# Find and modify a code
susceptibility_code = project.find_code("1. Perceived Susceptibility")
if susceptibility_code:
print(f"\nOriginal Susceptibility Description: {susceptibility_code.description}")
susceptibility_code.description = "Updated description for perceived susceptibility."
print(f"New Susceptibility Description: {susceptibility_code.description}")
# Save changes (this will update the project.qde inside the zip)
project.save()
print("\nProject saved successfully!")
else:
print("Could not load project.")
# Clean up (if you created a dummy file for testing)
# os.remove("my_project.qdpx")
Running Tests
To run the unit tests, navigate to the root directory of the package (pyqdpx_package/) and use pytest:
pip install pytest
pytest
Contributing
Contributions are welcome! Please feel free to open issues or submit pull requests.LicenseThis project is licensed under the MIT License - see the LICENSE file for details.
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pyqdpx-0.1.3.tar.gz.
File metadata
- Download URL: pyqdpx-0.1.3.tar.gz
- Upload date:
- Size: 22.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
adc066e9d671b944b490dcb095caadc0553b9e2f1bd3d782f54f785da354df95
|
|
| MD5 |
833383d1a23ab26023ee2e80572412dc
|
|
| BLAKE2b-256 |
f06a70b915ad822369014eb4cb893b24b42b69d34a29799ed12ecdfa0851e855
|
File details
Details for the file pyqdpx-0.1.3-py3-none-any.whl.
File metadata
- Download URL: pyqdpx-0.1.3-py3-none-any.whl
- Upload date:
- Size: 15.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3c2d6553afe36782790422471d48fa6ca2216b528e66da2b4da8f615c56d01c3
|
|
| MD5 |
75a21991f008aded3cf9a23a1e01dca0
|
|
| BLAKE2b-256 |
0bf9a7daaa9a79a53d3d42d4850a2ba7d476850ce1a5836e28f0a20b0a113d9a
|