### Initialize PyCap Project Source: https://github.com/redcap-tools/pycap/blob/master/docs/quickstart.md Establishes a connection to a REDCap project using the API URL and a provided API key. This is the first step before performing any operations. ```Python from redcap import Project api_url = 'https://redcap.example.edu/api/' api_key = 'SomeSuperSecretAPIKeyThatNobodyElseShouldHave' project = Project(api_url, api_key) ``` -------------------------------- ### Install PyCap Dependencies with Poetry Source: https://github.com/redcap-tools/pycap/blob/master/CONTRIBUTING.md Installs all project dependencies, including optional ones like 'data_science', using the poetry install command. ```Shell poetry install -E data_science ``` -------------------------------- ### Import Records into REDCap Project Source: https://github.com/redcap-tools/pycap/blob/master/docs/quickstart.md Imports a list of records into the REDCap project. Each record should be a dictionary containing the necessary fields, such as 'record' and other data points. ```Python to_import = [{'record': 'foo', 'test_score': 'bar'}] response = project.import_records(to_import) ``` -------------------------------- ### Export All Records from REDCap Project Source: https://github.com/redcap-tools/pycap/blob/master/docs/quickstart.md Exports all records from the connected REDCap project. The exported data is typically returned as a list of dictionaries. ```Python data = project.export_records() ``` -------------------------------- ### Install Poetry Source: https://github.com/redcap-tools/pycap/blob/master/CONTRIBUTING.md Installs the poetry dependency manager using a curl command. This is a prerequisite for local development with PyCap. ```Shell curl -sSL https://install.python-poetry.org | python3 - ``` -------------------------------- ### Export Blank PDF of REDCap Instruments Source: https://github.com/redcap-tools/pycap/blob/master/docs/quickstart.md Exports a PDF file containing blank versions of all instruments in the REDCap project. The content is written to a local file. ```Python content, _headers = project.export_pdf() with open('all_instruments_blank.pdf', 'wb') as fobj: fobj.write(content) ``` -------------------------------- ### Import File to REDCap Project Source: https://github.com/redcap-tools/pycap/blob/master/docs/quickstart.md Uploads a file associated with a specific record and field in the REDCap project. Requires opening the file in binary read mode. ```Python fname = 'something_to_upload.txt' with open(fname, 'r') as fobj: project.import_file('1', 'file', fname, fobj) ``` -------------------------------- ### Export File from REDCap Project Source: https://github.com/redcap-tools/pycap/blob/master/docs/quickstart.md Exports a file associated with a specific record and field from the REDCap project. The content and headers are returned, allowing the file to be saved locally. ```Python content, headers = project.export_file('1', 'file') with open(headers['name'], 'wb') as fobj: fobj.write(content) ``` -------------------------------- ### Install PyCap Source: https://github.com/redcap-tools/pycap/blob/master/README.md Installs the latest version of the PyCap module using pip. This is the standard way to get the most recent stable release of the library. ```sh pip install PyCap ``` -------------------------------- ### Install PyCap from GitHub Source: https://github.com/redcap-tools/pycap/blob/master/docs/index.md Installs the development version of PyCap directly from its GitHub repository using pip in editable mode. ```sh pip install -e git+https://github.com/redcap-tools/PyCap.git#egg=PyCap ``` -------------------------------- ### Delete File from REDCap Project Source: https://github.com/redcap-tools/pycap/blob/master/docs/quickstart.md Deletes a file associated with a specific record and field in the REDCap project. Includes error handling for cases where the file is not found or deletion fails. ```Python try: project.delete_file('1', 'file') except redcap.RedcapError: # Throws this if file wasn't successfully deleted pass except ValueError: # You screwed up and gave it a bad field name, etc pass ``` -------------------------------- ### Install PyCap from GitHub Source: https://github.com/redcap-tools/pycap/blob/master/README.md Installs the bleeding-edge version of PyCap directly from its GitHub repository. This is useful for developers who want to use the latest unreleased features or contribute to the project. ```sh pip install -e git+https://github.com/redcap-tools/PyCap.git#egg=PyCap ``` -------------------------------- ### Install PyCap with pandas support Source: https://github.com/redcap-tools/pycap/blob/master/docs/index.md Installs PyCap along with optional dependencies required for loading REDCap data into pandas dataframes. ```sh pip install PyCap[all] ``` -------------------------------- ### Install PyCap with pip Source: https://github.com/redcap-tools/pycap/blob/master/docs/index.md Installs the latest version of the PyCap library using pip, the standard Python package installer. ```sh pip install PyCap ``` -------------------------------- ### Update contributing.rst with new installation instructions Source: https://github.com/redcap-tools/pycap/blob/master/HISTORY.md The `contributing.rst` file has been updated with new instructions for project installation. This aims to provide clearer guidance for developers wishing to contribute to the project. -------------------------------- ### Modify pandas installation instructions Source: https://github.com/redcap-tools/pycap/blob/master/HISTORY.md Documentation has been updated to clarify the installation instructions for the `pandas` package, which is an optional dependency. This aims to improve the user experience for those who need `pandas` for specific functionalities. -------------------------------- ### Run PyCap Tests with Poetry Source: https://github.com/redcap-tools/pycap/blob/master/CONTRIBUTING.md Executes all project tests using the 'poetry run pytest' command to ensure code changes are valid. ```Shell poetry run pytest ``` -------------------------------- ### Install PyCap with Pandas Support Source: https://github.com/redcap-tools/pycap/blob/master/README.md Installs PyCap along with the necessary dependencies to load REDCap data into pandas dataframes. This command ensures that both PyCap and pandas are available for data analysis tasks. ```sh pip install PyCap[all] ``` -------------------------------- ### Add delete_roles API Support Source: https://github.com/redcap-tools/pycap/blob/master/HISTORY.md This update introduces support for the `delete_roles` functionality in the REDCap API. No specific code examples are provided, but it indicates an enhancement to the project's API capabilities. -------------------------------- ### Add pandas as an extra_requires Source: https://github.com/redcap-tools/pycap/blob/master/HISTORY.md The `pandas` library has been added as an `extra_requires` dependency. This allows users to install `pandas` optionally for enhanced data handling capabilities. -------------------------------- ### Common parameter name changes Source: https://github.com/redcap-tools/pycap/blob/master/HISTORY.md Several common parameter names have been updated for consistency and to avoid reserved keywords. Examples include `format` to `format_type` and `type` to `record_type`. -------------------------------- ### Fix package version when installing from GitHub Source: https://github.com/redcap-tools/pycap/blob/master/HISTORY.md A fix has been implemented to correctly parse the package version when installing directly from GitHub. This ensures accurate version reporting. -------------------------------- ### Support lazy loading of Projects Source: https://github.com/redcap-tools/pycap/blob/master/HISTORY.md The project now supports lazy loading of `Project` objects. This optimization defers the initialization of project objects until they are actively used, improving startup performance. -------------------------------- ### Revamp documentation to mkdocs-material style Source: https://github.com/redcap-tools/pycap/blob/master/HISTORY.md The project's documentation has been revamped using the `mkdocs-material` theme for GitHub pages. This provides a more modern and user-friendly documentation experience. -------------------------------- ### Project Instantiation Error Handling (Python) Source: https://github.com/redcap-tools/pycap/blob/master/HISTORY.md Raises an exception during Project instantiation if the metadata call fails, typically indicating invalid credentials. This improves early detection of configuration issues. ```Python from redcap import Project try: project = Project('http://redcap.example.com/api/', 'your_api_token') except Exception as e: print(f"Failed to instantiate Project: {e}") ``` -------------------------------- ### Use pytest for full test suite Source: https://github.com/redcap-tools/pycap/blob/master/HISTORY.md The project has transitioned to using `pytest` for its entire test suite. This provides a more powerful and flexible testing framework. -------------------------------- ### API Methods Implementation (Python) Source: https://github.com/redcap-tools/pycap/blob/master/HISTORY.md Adds support for various REDCap API methods including exporting users and deleting files. Most core API functionalities are now accessible through the `Project` class. ```Python from redcap import Project # Assuming 'project' is an instance of Project users = project.export_users() # project.delete_file(...) ``` -------------------------------- ### Update README with community support model Source: https://github.com/redcap-tools/pycap/blob/master/HISTORY.md The README file has been updated to reflect the new community support model and provide guidance on how to contribute to the project. -------------------------------- ### Import Records with PyCap Records Class Source: https://github.com/redcap-tools/pycap/blob/master/docs/using-in-app-or-package.md Illustrates how to import records into a REDCap project using the Records class in PyCap. This method is equivalent to the one available in the Project class but offers a simpler interface for record management. ```Python from redcap import Project import pandas as pd # Assuming 'rc' is an authenticated Project instance # data = pd.DataFrame(...) # rc.import_records(data) # Example using the Records class directly (if instantiated separately) # from redcap.methods.records import Records # records_handler = Records(rc.token, rc.url) # records_handler.import_records(data) ``` -------------------------------- ### Add repeat_instance parameter to imp_file request Source: https://github.com/redcap-tools/pycap/blob/master/HISTORY.md The `imp_file` request now supports the `repeat_instance` parameter. This is useful for importing data into repeating instruments or events. -------------------------------- ### Add docs tests for return format type Source: https://github.com/redcap-tools/pycap/blob/master/HISTORY.md Includes documentation tests specifically for the return format type functionality. This ensures that the different data formats returned by the API are handled correctly. -------------------------------- ### Using Kenneth Reitz's Requests Module (Python) Source: https://github.com/redcap-tools/pycap/blob/master/HISTORY.md Refactored to use the `requests` module, simplifying the underlying HTTP request code and improving maintainability. ```Python # The use of the 'requests' library is an internal implementation detail. # Users interact with the Project class methods directly. # Example of how it simplifies code: # import requests # response = requests.post(url, data=payload) ``` -------------------------------- ### Export Records with PyCap Records Class Source: https://github.com/redcap-tools/pycap/blob/master/docs/using-in-app-or-package.md Demonstrates how to export records from a REDCap project using the Records class in PyCap. This class is a focused alternative to the Project class for record-specific operations. ```Python from redcap import Project # Assuming 'rc' is an authenticated Project instance # records = rc.export_records() # Example using the Records class directly (if instantiated separately) # from redcap.methods.records import Records # records_handler = Records(rc.token, rc.url) # records = records_handler.export_records() ``` -------------------------------- ### Add check for missing token and url Source: https://github.com/redcap-tools/pycap/blob/master/HISTORY.md This improvement focuses on package robustness by adding a check for missing token and URL configurations. This is a preventative measure to ensure proper initialization and prevent runtime errors. -------------------------------- ### Robust testing infrastructure with pytest and doctest-plus Source: https://github.com/redcap-tools/pycap/blob/master/HISTORY.md The project now utilizes a robust testing infrastructure with `pytest` and `doctest-plus`, achieving 100% test coverage. Automated styling and linting checks are integrated into the CI pipeline. -------------------------------- ### Add comprehensive docstrings and doctests Source: https://github.com/redcap-tools/pycap/blob/master/HISTORY.md Comprehensive docstrings and doctests have been added to all methods. This improves code clarity, facilitates testing, and aids in understanding method usage. -------------------------------- ### Properly backfill requested fields for >6.X servers Source: https://github.com/redcap-tools/pycap/blob/master/HISTORY.md Ensures that requested fields are properly backfilled for REDCap servers running versions greater than 6.X. This addresses potential data inconsistencies. -------------------------------- ### Add import_metadata endpoint support Source: https://github.com/redcap-tools/pycap/blob/master/HISTORY.md Support for the `import_metadata` REDCap API endpoint has been added. This allows users to import metadata definitions into their REDCap projects programmatically. -------------------------------- ### Add Export Project Information method Source: https://github.com/redcap-tools/pycap/blob/master/HISTORY.md A new method has been added to export project information from REDCap. This provides access to metadata and configuration details of a REDCap project. -------------------------------- ### Handling 5XX Responses and Failed Imports (Python) Source: https://github.com/redcap-tools/pycap/blob/master/HISTORY.md The library now raises exceptions for 5XX server responses and for failed import operations, providing clearer feedback on issues encountered during data transfer. ```Python from redcap import Project, RedcapError # Assuming 'project' is an instance of Project try: project.import_records(records_data) except RedcapError as e: print(f"Import failed: {e}") ``` -------------------------------- ### Allow later versions of semantic-version Source: https://github.com/redcap-tools/pycap/blob/master/HISTORY.md The project now allows for later versions of the `semantic-version` library to be used. This ensures compatibility with newer versions of this dependency. -------------------------------- ### Enforce black and pylint style and formatting Source: https://github.com/redcap-tools/pycap/blob/master/HISTORY.md The project now enforces code style and formatting using `black` and `pylint`. This ensures code consistency and adherence to best practices. -------------------------------- ### Add user role methods Source: https://github.com/redcap-tools/pycap/blob/master/HISTORY.md Functionality for managing user roles has been incorporated. This allows for programmatic control over user permissions and role assignments in REDCap. -------------------------------- ### Add Export Reports method Source: https://github.com/redcap-tools/pycap/blob/master/HISTORY.md This update adds the capability to export reports directly from REDCap. Users can now programmatically access generated reports. -------------------------------- ### Project class loads lazily by default Source: https://github.com/redcap-tools/pycap/blob/master/HISTORY.md The `Project` class now employs lazy loading by default. This optimization improves performance by deferring the loading of project data until it's actually needed. -------------------------------- ### Use single requests.Session() for connections Source: https://github.com/redcap-tools/pycap/blob/master/HISTORY.md The library now utilizes a single `requests.Session()` object for all connections. This improves efficiency by reusing underlying TCP connections. -------------------------------- ### File Handling Methods (Python) Source: https://github.com/redcap-tools/pycap/blob/master/HISTORY.md Implements methods for exporting, importing, and deleting files associated with REDCap records. These methods include error handling to raise specific exceptions for failed operations. ```Python from redcap import Project, RedcapError # Assuming 'project' is an instance of Project try: project.export_file(record_id='1', field='file_field') project.import_file(record_id='1', field='file_field', file_path='/path/to/file') project.delete_file(record_id='1', field='file_field') except RedcapError as e: print(f"Error during file operation: {e}") ``` -------------------------------- ### Add export_repeating_instruments_events and import_repeating_instruments_events support Source: https://github.com/redcap-tools/pycap/blob/master/HISTORY.md This update adds support for exporting and importing repeating instruments and events in REDCap. It enhances pycap's ability to handle complex REDCap project structures. -------------------------------- ### Default JSON Format and Query Module Removal (Python) Source: https://github.com/redcap-tools/pycap/blob/master/HISTORY.md Normalizes the default format argument to 'json' for API requests, aligning with the official REDCap API. The `redcap.query` module has been removed, recommending Pandas for filtering functionalities. ```Python from redcap import Project # Assuming 'project' is an instance of Project # The format argument defaults to 'json' data = project.export_records(fields=['field1', 'field2']) # For filtering, use pandas: # import pandas as pd # df = project.export_records(format='df') # filtered_df = df[df['field1'] == 'some_value'] ``` -------------------------------- ### Update delete_records documentation Source: https://github.com/redcap-tools/pycap/blob/master/HISTORY.md The documentation for the `delete_records` method has been updated. This likely includes clarifications on its usage, parameters, or potential side effects. -------------------------------- ### Add new args for export records Source: https://github.com/redcap-tools/pycap/blob/master/HISTORY.md Enhances the `export_records` method by adding new arguments. These arguments likely provide more granular control over how records are exported from REDCap. -------------------------------- ### Add Project method to export survey participant list Source: https://github.com/redcap-tools/pycap/blob/master/HISTORY.md A new method has been added to the `Project` class that allows for exporting the survey participant list. This provides direct access to participant data. -------------------------------- ### Add redcap_version attribute to Project Source: https://github.com/redcap-tools/pycap/blob/master/HISTORY.md The `Project` class now includes a `redcap_version` attribute. This allows users to easily determine the version of the REDCap server they are interacting with. -------------------------------- ### Project.export_* methods can return DataFrames Source: https://github.com/redcap-tools/pycap/blob/master/HISTORY.md All `Project.export_*` methods that previously returned JSON can now optionally return `pandas` DataFrames. This provides greater flexibility in data analysis and manipulation. -------------------------------- ### Add Python 3 support Source: https://github.com/redcap-tools/pycap/blob/master/HISTORY.md Explicit support for Python 3 has been added. This ensures compatibility and allows users to leverage Python 3 features. -------------------------------- ### Renamed export_fem to export_instrument_event_mapping Source: https://github.com/redcap-tools/pycap/blob/master/HISTORY.md The `export_fem` method has been renamed to `export_instrument_event_mapping` for better consistency with other API endpoint naming conventions. -------------------------------- ### Add user methods Source: https://github.com/redcap-tools/pycap/blob/master/HISTORY.md This update adds new methods related to user management within the REDCap API. These methods likely provide functionality for retrieving or manipulating user information. -------------------------------- ### Add Generate Next Record Name method Source: https://github.com/redcap-tools/pycap/blob/master/HISTORY.md A new method, `Generate Next Record Name`, has been added. This utility helps in generating unique record identifiers within a REDCap project. -------------------------------- ### Added REDCap API changelog from 6.0.0 - 6.12.1 Source: https://github.com/redcap-tools/pycap/blob/master/HISTORY.md A changelog for the REDCap API, covering versions 6.0.0 to 6.12.1, has been added. This provides historical context for API changes. -------------------------------- ### Add Export Survey Participant List method Source: https://github.com/redcap-tools/pycap/blob/master/HISTORY.md A new method has been added to export the survey participant list from REDCap. This provides access to participant information for survey-based projects. -------------------------------- ### Import Records with DataFrame Support (Python) Source: https://github.com/redcap-tools/pycap/blob/master/HISTORY.md Allows passing pandas DataFrames directly to the import_records method for easier data management. This feature enhances the library's integration with data analysis workflows. ```Python from redcap import Project # Assuming 'project' is an instance of Project # and 'my_dataframe' is a pandas DataFrame project.import_records(my_dataframe) ``` -------------------------------- ### Add DAG methods Source: https://github.com/redcap-tools/pycap/blob/master/HISTORY.md New methods for managing Data Access Groups (DAGs) have been added. This enables pycap users to interact with DAGs in REDCap through the Python API. -------------------------------- ### Add forceAutoNumber parameter to import_records() Source: https://github.com/redcap-tools/pycap/blob/master/HISTORY.md The `import_records()` method now includes the `forceAutoNumber` parameter. This allows for forcing automatic numbering of records during import. -------------------------------- ### Export Metadata and Alter DataFrame Construction (Python) Source: https://github.com/redcap-tools/pycap/blob/master/HISTORY.md Adds the ability to export project metadata and provides an option to alter DataFrame construction using `df_kwargs`. This allows for customization of how data is loaded into pandas DataFrames. ```Python from redcap import Project # Assuming 'project' is an instance of Project metadata = project.export_metadata() records_df = project.export_records(format='df', df_kwargs={'index_col': 'record_id'}) ``` -------------------------------- ### Add support for exportFieldNames call Source: https://github.com/redcap-tools/pycap/blob/master/HISTORY.md This update adds support for the `exportFieldNames` REDCap API call. It allows users to retrieve the names of all fields within a REDCap project. -------------------------------- ### Add logging methods Source: https://github.com/redcap-tools/pycap/blob/master/HISTORY.md Introduces new methods for logging within the pycap library. This enhancement allows users to better track and debug operations performed through the REDCap API. -------------------------------- ### Project class refactored into smaller utility classes Source: https://github.com/redcap-tools/pycap/blob/master/HISTORY.md The `Project` class has been refactored into smaller, more manageable utility classes. This improves code organization and maintainability, with details available in the `redcap.methods` module. -------------------------------- ### Gradual typing added to Project class Source: https://github.com/redcap-tools/pycap/blob/master/HISTORY.md Gradual typing has been incorporated into the `Project` class to improve code quality and maintainability. While not yet enforced in CI, it aids in static analysis and developer understanding. -------------------------------- ### Add dateRangeBegin and dateRangeEnd parameters to export_records Source: https://github.com/redcap-tools/pycap/blob/master/HISTORY.md The `Project.export_records` method now accepts `dateRangeBegin` and `dateRangeEnd` parameters. This enables users to filter records based on a specific date range during export. -------------------------------- ### Deprecate support for Python 2 Source: https://github.com/redcap-tools/pycap/blob/master/HISTORY.md Support for Python 2 has been deprecated. Users are encouraged to migrate to Python 3 to continue using the library. -------------------------------- ### Add Delete Record method Source: https://github.com/redcap-tools/pycap/blob/master/HISTORY.md A new method for deleting records from REDCap has been added. This provides programmatic control over record deletion. -------------------------------- ### Export Survey Fields and Data Access Groups (Python) Source: https://github.com/redcap-tools/pycap/blob/master/HISTORY.md Introduces arguments to export survey fields and data access groups within the import_records method. This provides more granular control over data retrieval for complex REDCap projects. ```Python from redcap import Project # Assuming 'project' is an instance of Project project.import_records(..., export_survey_fields=True, export_data_access_groups=True) ``` -------------------------------- ### Fix package version parsing for UNIX Source: https://github.com/redcap-tools/pycap/blob/master/HISTORY.md A bug related to package version parsing on UNIX systems has been fixed. This ensures accurate version identification across different operating systems. -------------------------------- ### Python 3 updates Source: https://github.com/redcap-tools/pycap/blob/master/HISTORY.md Updates have been made to ensure compatibility and proper functioning with Python 3 environments. This includes adjustments to syntax and library usage. -------------------------------- ### Dropped support for Python 2, requires Python 3.8+ Source: https://github.com/redcap-tools/pycap/blob/master/HISTORY.md Support for Python 2 has been officially dropped. The library now requires Python 3.8 or a later version, aligning with modern Python development practices. -------------------------------- ### JSON Decoding and Character Handling (Python) Source: https://github.com/redcap-tools/pycap/blob/master/HISTORY.md Uses relaxed JSON decoding to accommodate REDCap's non-strict JSON responses. Also includes fixes for handling non-unicode characters and newline characters in the Data Dictionary. ```Python # The library handles relaxed JSON decoding internally. # No explicit code change is typically needed by the user. # Example of potential issue addressed: # project = Project(...) # If Data Dictionary had newlines in a field, instantiation might fail. # This is now fixed. ``` -------------------------------- ### RedcapError raised for all API errors Source: https://github.com/redcap-tools/pycap/blob/master/HISTORY.md All API errors encountered by the library will now raise a `RedcapError`. Errors will no longer be returned within the API response, simplifying error handling. -------------------------------- ### Add export_checkbox_labels keyword arg to export_records() Source: https://github.com/redcap-tools/pycap/blob/master/HISTORY.md The `export_records()` method now includes the `export_checkbox_labels` keyword argument. This enables the export of checkbox field labels. -------------------------------- ### Add _complete fields to payload for survey fields Source: https://github.com/redcap-tools/pycap/blob/master/HISTORY.md The payload for requesting survey fields now includes `_complete` fields. This change provides more comprehensive data when retrieving survey-related information. -------------------------------- ### Add rec_type support in import_records() Source: https://github.com/redcap-tools/pycap/blob/master/HISTORY.md The `import_records()` method now supports the `rec_type` parameter. This allows for specifying the record type when importing data. -------------------------------- ### Longitudinal Project Record Export (Python) Source: https://github.com/redcap-tools/pycap/blob/master/HISTORY.md For longitudinal projects, records exported as a DataFrame will now use a MultiIndex composed of the project's primary field and `redcap_event_name` by default. ```Python from redcap import Project # Assuming 'project' is an instance of Project for a longitudinal project records_df = project.export_records(format='df') # The index will be a MultiIndex (primary_field, redcap_event_name) ``` -------------------------------- ### Add filter_logic to export_records Source: https://github.com/redcap-tools/pycap/blob/master/HISTORY.md The `export_records` method now supports the `filter_logic` parameter. This allows users to apply custom filter logic when exporting records. -------------------------------- ### Change API parameters from comma-separated to arrays Source: https://github.com/redcap-tools/pycap/blob/master/HISTORY.md API parameters that were previously comma-separated strings have been changed to accept arrays. This provides a more structured and robust way to pass multiple values. -------------------------------- ### Ignoring SSL Certificates (Python) Source: https://github.com/redcap-tools/pycap/blob/master/HISTORY.md Provides an option to ignore SSL certificate verification for the REDCap server connection, which can be useful in specific network configurations or testing environments. ```Python from redcap import Project # Assuming 'project' is an instance of Project # Set verify_ssl to False to ignore SSL certificate verification project = Project('http://redcap.example.com/api/', 'your_api_token', verify_ssl=False) ``` -------------------------------- ### Remove obsolete Project.filter() Source: https://github.com/redcap-tools/pycap/blob/master/HISTORY.md The obsolete `Project.filter()` method has been removed. Users should now utilize alternative methods for filtering data. -------------------------------- ### generate_next_record_name returns str instead of int Source: https://github.com/redcap-tools/pycap/blob/master/HISTORY.md The `generate_next_record_name` method now returns a string instead of an integer. This change addresses a bug that occurred when projects utilized Data Access Groups (DAGs). -------------------------------- ### Update author email Source: https://github.com/redcap-tools/pycap/blob/master/HISTORY.md The author's email address has been updated in the project metadata. This ensures correct contact information is available. -------------------------------- ### Handle EmptyData error from pandas read_csv Source: https://github.com/redcap-tools/pycap/blob/master/HISTORY.md The library now correctly handles `EmptyData` errors that may arise from `pandas.read_csv`. This improves robustness when dealing with empty or malformed CSV data. -------------------------------- ### Removed extraneous Project attributes Source: https://github.com/redcap-tools/pycap/blob/master/HISTORY.md Several extraneous attributes have been removed from the `Project` class to streamline its interface. Refer to the API reference for a list of remaining attributes. -------------------------------- ### Fix issue in new survey participant export method Source: https://github.com/redcap-tools/pycap/blob/master/HISTORY.md A specific issue found in the recently added survey participant export method has been fixed. This ensures the method functions correctly. === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.