Timelink is an information system for person related information collected from historical sources.
Project description
Timelink is an information system for person related information collected from historical sources.
History
1.1.27 (2026-01-15)
Code style and quality improvements:
Applied Black code formatter with 120 character line length across the entire codebase
Reorganized imports following PEP 8 guidelines (standard library → third-party → local)
Consolidated imports from the same modules for better maintainability
Standardized string quotes to double quotes throughout
Fixed various linting issues and improved code quality
Added Python 3.12 to testing matrix
Documentation improvements:
Updated and regenerated Sphinx API documentation with latest code
Fixed documentation build warnings and improved Sphinx configuration
Added comprehensive documentation for linter (flake8) and formatter (Black) configuration
Fixed critical issue where documentation wasn’t showing the latest code versions
Added git worktree workflow instructions (see CLAUDE.md)
Updated branch management guidelines
Type hints and typing improvements:
Improved type hints for better Pylance/VSCode compliance
Fixed return types and typing expressions throughout codebase
Enhanced type safety and IDE support
Network functionality:
Fixed network generation and drawing issues (work in progress)
Added comprehensive tests for network functions
Improved session handling for network operations
Database improvements:
Improved drop_db() function
Enhanced session handling throughout the codebase
Fixed DetachedInstanceError issues in database operations
Fixed UTC current date and time handling
Testing:
Updated test data and notebooks to work with latest changes
Added comprehensive testing for Python 3.12 compatibility
Expanded test coverage for various components
Development workflow:
Migrated continuous integration from Travis CI to GitHub Actions
Added Python 3.12 to tox test matrix
Enhanced Kleio-server Docker container integration in CI
Added local CI testing support with act tool
Removed notebook tests for better CI performance
Updated VSCode workspace configuration for better development experience
Improved project template layouts
Updated requirements and dependencies
Bug fixes:
Fixed return type of REntity.same_as()
Fixed usage of deprecated datetime.utcnow()
Fixed DetachedInstanceError in database operations
Fixed view usage in web database overview notebooks
Fixed nfunctions view bug
Fixed various UTC date and time handling issues
Improved find_kleio_home() and utility functions
Other:
Enhanced project template layouts
Improved various docstrings and documentation
Multiple test file updates and improvements
1.1.26 (2025-05-27)
Fixes bug in processing of comments and original wording in pandas.entities_with_attribute()
Fixes TimelinkDatabase.pperson when no session is provided
1.1.25 (2025-04-06)
Fixes the multiple database access issue when running tests in a single session.
Improves date formatting of timelink flexible dates
Fixes issues in base mappings
Add parameter to TimelinkDatabase to drop database if it exists, before creating new
1.1.24 (2025-03-16)
Tries to fix test errors when tests are run in a single session (as in pytest). This cannot be fixed and is related to behaviour of sqlalchemy when acessing multiple database with the same metadata, that is dynamically changed by addind new dynamic classes and tables. The solution is to run tests in separate sessions to check for tests. A new target make test-loop run each test file separetly to check for real errors.
While this is not fixed deploy via Travis does not work. Use make release.
1.1.23 (2025-03-16)
Fixes some issues with the rendering of dates in kleio outputs
Improves handling of extra_info in Entities
Improves metadata handling when acessing multiple databases
1.1.21 (2025-03-15)
Fixes issue 67
1.1.19 (2025-03-14)
Extends extra_info content in Entities.
Now extra_info retains some of the SOM-POM Mapping information present in the import file. Extra_info is a dictionary with keys equal to the column names of the Entity (and the columns of its specialization tables). For each column there is a dictionary containing the Kleio element name that produced the information, the kleio element class, the Entity attribute name (which can be different from the name of the column, and the Entity column class. This allows for implementation of the to_kleio() method with results closer to the original source.
- Various fixes and improvements.
Better introspection methods in Entity class.
Better handling of database views.
Add force parameter to TimelinkDatabase.update_from_sources
Improved error handling in database operations, avoiding dangling sessions and locked tables.
Improved KGroup.get_element_by_name_or_class(element_spec) which is the way to extract from an imported group the data for a specific attribute in an ORM model.
Improve quoting of values with special characters when rendering kleio from database content.
Better usage of extra_info information when generating dataframes in the pandas module, namely using the name of the attribute instead of the name of the column in the database, when naming dataframe columns.
Improve Makefile, add profile command.
1.1.18 (2025-02-04)
Fix rendering of dates in kleio outputs
More improvment to migration of old databases.
Add database version to information on TimelinkNotebook
Various bug fixes.
1.1.17 (2025-01-20)
Improve migration of old databases
Various improvments in unit tests
1.1.16 (2025-01-08)
Adds comment and original wording to entities_with_attribute
Fixes problem with alembic and logging.
Improves view generation across database migrations
Improves testing fixtures
1.1.15 (2024-12-17)
Implements real-entities (#21)
This is a major refactor of the code, including changes to database structure and the way data is imported. The main changes are:
Entities now register the source of the data. This was necessary to detect easily cross source references, such as xsame_as that link occurrences in different sources refering to the same entity.
Migrations with Alembic are now used to update the database schema. This is a major change, and it is still experimental. From this version onwards changes to the database are handled through Alembic and authomatically triggered when a Timelink database is opened with TimelinkDatabase() class.
The import process was refactored to save the context of cross source references, and restoring them after reimport. See this note
Improvements to to_kleio() rendering, taking into account extra_info with comments and original wording.
1.1.14 (2024-09-23)
- Add model for RealEntiy, imports Real Entities (sameas and authority records).
#22, #21 (only Real Entities)
Improve rendering of extra_info in Kleio
Removes Kleio-home from path when storing Kleio files #20
Fixes problem with checking length of content for numeric fields #54
Implements #53 facilitates access to ORM models using group names.
1.1.13 (2024-09-07)
Improves import when tables duplicate columns of super class table, bug fixes.
Fixes issue #49: now import propagates data to higher levels in table hierarchy, even if the data is not mapped in the lower levels.
Fixes #44: get_person and get_entity now accept db and session as parameters
Improves rendering of automatic ids.
1.1.12 (2024-09-05)
- Fixes issue #48: now import propagates data to higher levels in table
hierarchy, even if the data is not mapped in the lower levels.
1.1.11 (2024-07-7)
Implements Issue43 (adds groupname filtering to attribute_values)
Fixes bug in pandas.styles due to deprecation of matplotlib.cm
Fix a problem with the release process.
1.1.10 (2024-05-19)
Fix a bug in entities_with_attribute() filter_by parameter handling.
1.1.9 (2024-05-03)
fix bug with to_kleio() in models (bad identation)
1.1.8 (2024-05-02)
Fix bug with export_to_kleio()
Several minor bug fixes
1.1.7 (2024-04-28)
Adds new eattributes views to easily access line, level, groupname of attributes
pandas.entities_with_attribute returns attribute type,line,level and obs.
Adds reference requirements.txt file to notebook tests
Adds TimelinkDatabase.export_as_kleio(ids,filename
1.1.6 (2024-04-24)
Fixes regression in 1.1.5.
1.1.5 (2024-04-24)
Comments and original wording are now stored in the “obs” field of entities, preceeded by “extra_info:”.
If obs field contained explicit observations, these are preserved, and “extra_info:” is appended.
A new method in the Entity class, get_extra_info() fetches the extra info as a dictionnary.
Partially implements issue #9.
1.1.4 (2024-03-16)
Skips long imports in Travis CI
1.1.3 (2024-03-16)
Fixes a bug in update_from_sources() when import_with_errors was choosen
1.1.2 (2024-02-27)
Bug fixes #16 #24 #28
1.1.1 (2024-02-26)
Includes basic templates, better integration with Travis CI
1.0.5 (2024-02-07)
Fix minor bugs, better interaction with Docker and Jupyter notebooks.
1.0.4 (2024-02-06)
Improved notebook integration, new tutorial and receipts notebooks in progress.
1.0.3 (2024-02-01)
Use new deployment method with Travis
1.0.1 (2024-01-31)
Fix travis build
1.0.0 (2024-01-30)
First release with Jupyter notebooks integration.
0.3.10 (2022-06-07)
Fix to_kleio() in models: now generates quotes and triple quotes when necessary.
0.3.9 (2022-05-26)
Fix missing import in kleio.groups
0.3.8 (2022-03-28)
Fix bug with Session import in mhk.models.db
0.3.3 to 0.3.7 (2022-03-27)
Fix build on travis with auto deployment
0.3.2 (2022-03-27)
Fixes bug in package descrition preventing release in Pypi.
0.3.1 (2022-03-25)
All core ORM models for MHK databases
Dynamic generation of ORM models from XML files produced by the Kleio translator.
Python definition of Kleio groups allows synonyms to be defined for localized elements.
Import from XML file to MHK database
CLI interface refactored with Typer
Improved documentation
Developement related changes
black can be used to format code
More and better tests, handling of MHK installation or lack of in CI tests
0.3.0 (2022-03-05)
Fixes bugs related to mapping legacy MHK databases
0.2.9 (2021-09-30)
Update requirements and docs
0.2.10 (2022-03-30)
Adds indexes to models
Added sqlite test db
Better testing, travis integration improved
Replaced click with typer in cli interface
0.2.9 (2021-09-30)
Update documentation.
0.2.8 (2021-09-30)
Add to_json() method to KGroup, enabling Kleio to JSon serialization.
0.2.7 (2021-08-29)
Auto build on Travis, with release to pypi
Skeleton docs on readthedocs
0.1.0 (2021-07-09)
First release on PyPI.
Project details
Release history Release notifications | RSS feed
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 timelink-1.1.27.tar.gz.
File metadata
- Download URL: timelink-1.1.27.tar.gz
- Upload date:
- Size: 16.1 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ff677d2b853814d88d1607e75c8e91ff5720d3100594bf719d3104d0d9d7f68a
|
|
| MD5 |
ac434bf20cf86a0c3ef7fe48984c29d5
|
|
| BLAKE2b-256 |
6c6cead5880581ebe842132266ae0121568d2a2ea26f200a57df410fff249da7
|
Provenance
The following attestation bundles were made for timelink-1.1.27.tar.gz:
Publisher:
ci.yml on time-link/timelink-py
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
timelink-1.1.27.tar.gz -
Subject digest:
ff677d2b853814d88d1607e75c8e91ff5720d3100594bf719d3104d0d9d7f68a - Sigstore transparency entry: 831174762
- Sigstore integration time:
-
Permalink:
time-link/timelink-py@2eac2652421f0a89e05d85e34134643e3820e325 -
Branch / Tag:
refs/tags/v1.1.27 - Owner: https://github.com/time-link
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci.yml@2eac2652421f0a89e05d85e34134643e3820e325 -
Trigger Event:
push
-
Statement type:
File details
Details for the file timelink-1.1.27-py2.py3-none-any.whl.
File metadata
- Download URL: timelink-1.1.27-py2.py3-none-any.whl
- Upload date:
- Size: 202.0 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
83187a64c032aeba5b178d11da43903bb5d281f174e336addb8fce01a2c46513
|
|
| MD5 |
feaf56bf937798d7d7b5e9d4c44fe517
|
|
| BLAKE2b-256 |
9819e77497a55fa1e6fcf2e36dcee3aeea7c39ad2043b0f176ea21320406dbbe
|
Provenance
The following attestation bundles were made for timelink-1.1.27-py2.py3-none-any.whl:
Publisher:
ci.yml on time-link/timelink-py
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
timelink-1.1.27-py2.py3-none-any.whl -
Subject digest:
83187a64c032aeba5b178d11da43903bb5d281f174e336addb8fce01a2c46513 - Sigstore transparency entry: 831174769
- Sigstore integration time:
-
Permalink:
time-link/timelink-py@2eac2652421f0a89e05d85e34134643e3820e325 -
Branch / Tag:
refs/tags/v1.1.27 - Owner: https://github.com/time-link
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci.yml@2eac2652421f0a89e05d85e34134643e3820e325 -
Trigger Event:
push
-
Statement type: