- Changes in 2.0
- Changes in 1.13
- Changes in 1.12
- Changes in 1.11
- Changes in 1.10
- Changes in 1.9
- Changes in 1.8
- Changes in 1.7
- Changes in 1.6
- Changes in 1.5
- Changes in 1.4
Changes in 2.0¶
Changes in 2.0.0 (2026-05-21)¶
This release removes the external dependency to the protobuf package. Instead protobuf is embedded into this yamcs-client package. This avoids issues with other installed packages depending on conflicting versions of protobuf. #32
This release removes old-style imports. Reminder: all classes can be imported from
yamcs.clientmodule.For example, instead of:
from yamcs.core.auth import Credentials from yamcs.client import YamcsClient credentials = Credentials(username="admin", password="admin") client = YamcsClient("http://localhost:8090", credentials=credentials)
do instead:
from yamcs.client import Credentials, YamcsClient credentials = Credentials(username="admin", password="admin") client = YamcsClient("http://localhost:8090", credentials=credentials)
TimelineClient: Add
delete_itemsoperation to batch-delete items. This is a lot faster than deleting items one-by-one.TimelineClient: Default for the
ItemBandsettingspace_between_itemswas changed from 0 to 7. Andspace_between_lineswas changed from 2 to 7. This allows for a bit more whitespace between items, which gives the Yamcs Web UI some space to draw connections between depending activities.TimelineClient: The code was adjusted to API changes in Yamcs 5.13.0. Backwards compatibility with older Yamcs versions is untested (and unlikely to succeed).
TimelineClient: The code to add/update items to the Yamcs Timeline was changed. A best-effort was made to keep old code functional, however that will emit deprecation warnings.
In summary, instead of:
item = Item() item.name = "Test" item.start = now item.duration = timedelta(seconds=3600) item.tags = ["abc"] timeline.save_item(item)
do instead:
item = TimelineEvent( name="Test", start=now, duration=timedelta(seconds=3600), tags=["abc"], ) timeline.save_item(item)
New classes are available for three different kinds of items:
TimelineEvent,TimelineTaskandTimelineActivity. See the online documentation for more on this topic.
Changes in 1.13¶
Changes in 1.13.0 (2026-04-02)¶
ArchiveClient: Added
sourceoption toexport_parameter_values. By default this function will now use the Parameter Archive instead of doing a packet replay.MDBClient: Added
versionoption toexport_space_system. This defaults to XTCE1.2, but you could set it to1.3to use the newly introduced namespace.If you are still using old-style imports, you will now start seeing deprecation warnings. Reminder: all classes can be imported from
yamcs.clientpackage.For example, instead of:
from yamcs.core.auth import Credentials from yamcs.client import YamcsClient credentials = Credentials(username="admin", password="admin") client = YamcsClient("http://localhost:8090", credentials=credentials)
do instead:
from yamcs.client import Credentials, YamcsClient credentials = Credentials(username="admin", password="admin") client = YamcsClient("http://localhost:8090", credentials=credentials)
ArchiveClient: the method
sample_parameter_valueswas renamed todownsample_mean. The previous method still works but will generate a deprecation warning. Likewise theSampleclass was renamed toMeanSample.Improves error handling when querying URLs that do not appear to be Yamcs URLs.
Changes in 1.12¶
Changes in 1.12.1 (2026-01-05)¶
Fixes a py3.8/py3.9 setuptools compatibility issue, introduced by 1.12.0 release
Changes in 1.12.0 (2025-10-30)¶
LinkClient: Add methods for SDLS API interaction (thanks @thezeroalpha)
Avoid pkg_resources warnings with recent versions of setuptools #35
Rename
yamcs.client.CommandStackActivitytoyamcs.client.StackActivity. The previous name will remaining working for a while, but may generate deprecation warnings.
Changes in 1.11¶
Changes in 1.11.3 (2025-03-27)¶
Archive: Make start/stop arguments on
rebuild_parameter_archiveoptionalAdd extension mechanism for non-core activities
Changes in 1.11.2 (2025-02-24)¶
Timeline: add new band types
ParameterPlotandParameterStateBandfor use with Yamcs 5.11.2 or higherParameter Archive: add operations to enable/disable automatic backfilling for use with Yamcs 5.11.1 or higher
Changes in 1.11.1 (2024-11-19)¶
Fixes an issue introduced in v1.11.0 when using string arguments #30 (thanks @AnsgarSchmidt)
Changes in 1.11.0 (2024-11-10)¶
For a few releases already, it has been possible to import all classes directly from the
yamcs.clientpackage. In this release, all docs and examples have been modified accordingly, and source files were physically moved under this package. Old-style imports continue to work, but will eventually be deprecated for removal (in the distant future).For example, instead of:
from yamcs.core.auth import Credentials from yamcs.client import YamcsClient credentials = Credentials(username="admin", password="admin") client = YamcsClient("http://localhost:8090", credentials=credentials)
prefer instead:
from yamcs.client import Credentials, YamcsClient credentials = Credentials(username="admin", password="admin") client = YamcsClient("http://localhost:8090", credentials=credentials)
Fixes API issue when using array-type TC arguments
Changes in 1.10¶
Changes in 1.10.0 (2024-08-20)¶
Fix compatibility issues with Yamcs 5.10.x
Require Python 3.8 or higher (Python 3.7 removed)
Fix circularity issue when using a deep import #28
Fix client close issue when no creds are used
MDB: provide access to command arguments and types
Archive: add CSV command export method\
Link subscription was adapted to changed server API. The subscription callback returns a
List[Link]now, instead ofLinkEvent, containing the state of all links.
Changes in 1.9¶
Changes in 1.9.8 (2024-05-24)¶
YamcsClient: Add
list_rdb_tablespacesandcompact_rdb_column_familymethods
Changes in 1.9.7 (2024-05-10)¶
YamcsClient: Addkeep_aliveoption to keep authentication session alive, even when no requests are made. The option is enabled by default.
Changes in 1.9.6 (2024-04-18)¶
File transfer: Add
run_file_actionProvide access to optional result of a link action
Add a
streamoption toissue_command(not functional now, for future Yamcs releases)
Changes in 1.9.5 (2024-03-25)¶
Add purge_parameter_archiveto archive client
Changes in 1.9.4 (2024-03-18)¶
Add
rebuild_ccsds_indexto archive clientAdd
run_scriptto processor clientFix few more typing issues
Changes in 1.9.3 (2024-03-05)¶
Everything (excluding generated protobuf classes) can now be imported directly from
yamcs.client. Previous imports remain functional, but we’ll gradually start recommending to use the shorter import. This was done for ease of use, but also because the current modules are not all underyamcs.client, and we’d like to change that in a future update.Many typing fixes (many more remaining)
Added static
YamcsClient.from_environment()method which initializes the client from environment properties. The main goal here is to make it easy to instantiate a YamcsClient when used in a Python script ran by the Yamcs Activity Service (the activity service sets the necessary environment variables automatically).Storage: Added capability to set an object’s metadata
Storage: Add
createoption toget_bucket()Processing: Add
await_first_delivery()toParameterSubscription. This makes it easier to await an expected value update (for example following a telecommand).Timeline: Add capability to schedule activities (Yamcs v5.9.0+)
Timeline: Allow changing the styling of individual items (Yamcs v5.9.0+)
Changes in 1.9.2 (2023-11-09)¶
Add
aliases,assignmentsandall_assignmentsproperties toCommandHistoryandIssuedCommandclasses.MDB: Temporarily deprecate
aliasesproperty of MDB items, in favor ofaliases_dict. Eventuallyaliaseswill become preferred again, but with a different type (dictionary instead of list of 2-tuples).ArchiveClient: Fix “namespace/alias” syntax not working with
list_parameter_values.
Changes in 1.9.1 (2023-11-03)¶
Add Python 3.12, drop Python 3.6
Bump minimum protobuf version from 3.8 to 3.11
Add streaming operations for packets/events/commands
Add method to load a large amount of parameter values into Yamcs (via client-streaming)
Add method to export parameter values in CSV format
Add methods to create Parameters and Parameter Types (in case of a writable space system)
Changes in 1.9.0 (2023-05-01)¶
This release introduces the use of Python’s typing library for better editor support. Previously, type hints were supplied in method comments.
YamcsClient:
Add method to delete a processor
ProcessorClient:
Allow setting sequence number when submitting commands
Use non-deprecated API to pass command arguments (the newer API was first introduced in Yamcs v5.5.4)
Alarm methods require passing a sequence number (used by Yamcs to validate the correct alarm instance)
create_packet_subscriptionwill now default to subscribe torealtimeprocessor, instead of thetm_realtimestream. This capability was first introduced on Yamcs v5.5.x branch.
ArchiveClient:
Add query option to dump_table
Add method to list alarms
MdbClient: Add method to export XTCE for a space system
FileTransferClient: Fix backwards compatibility around changes to upload options API (reliable, overwrite, createPath).
Changes in 1.8¶
Changes in 1.8.8 (2023-03-17)¶
Generate ConnectionFailure exception when login attempt is made and Yamcs is not available (previously this would generate an error coming from the requests dependency)
Fix possibility of mutation error when iterating command acknowledgements that are still being updated
Add a reconnection example: https://docs.yamcs.org/python-yamcs-client/examples/reconnection/ (#17)
Changes in 1.8.7 (2023-03-14)¶
Fix WebSocket connections not closed when monitoring file transfers #21
FileTransferClient:
Add support for remote file listing (requires Yamcs 5.7.10+)
upload(...): Argumentsreliable,createPathandoverwriteshould be passed inside the newoptionsargument. For example, replace:service.upload("somebucket", "myfile", "/CF:/mytarget", reliable=True)
with:
service.upload("somebucket", "myfile", "/CF:/mytarget", options={"reliable": True})
This change was done to further make FileTransferClient independent of a specific implementation like CFDP.
download(...): The order of arguments was changed to allow forobject_nameto be optionaldownload(...): Argumentsoverwrite,parentsandreliableshould be passed inside the newoptionsargument. For example, replace:service.download("somebucket", "targetfile", reliable=True)
service.download("somebucket", "targetfile", options={"reliable": True})
This change was done to further make FileTransferClient independent of a specific implementation like CFDP.
Changes in 1.8.6 (2023-02-21)¶
Add
is_failure()toMonitoredCommandinstances returned fromCommandSubscription.issue(...)(to complement existingis_success()).Make
MonitoredCommand.is_complete()always return eitherTrueorFalse. Prior to this release, it was returningNonewhen the completion could not yet be established.Add support for the websocket-client dependency to releases between 0.48.0 and 0.57.0. This range of versions had a breaking change which we did not support until now (although we did support both earlier and later versions). Some LTS Linux distributions still use these versions in their standard repositories, so it made sense to add support.
Changes in 1.8.5 (2022-10-21)¶
Fix decode issue with
list_itemsinTimelineClient
Changes in 1.8.4 (2022-06-15)¶
Add additional bucket properties:
created,directory,max_size,max_object_count(Yamcs v5.6.1)Add additional event property:
extra(Yamcs v5.7.3)Add support for
tm_linksfilter onstream_parameter_valuescall (Yamcs v5.7.4)
Changes in 1.8.3 (2022-05-30)¶
Exclude protobuf >=4 from allowed dependency range
Changes in 1.8.2 (2022-05-09)¶
Fix handling of addresses with trailing slash
When tls_verify=False, hide urllib3 insecure warning also with requests < 2.16.0
If the address does not specify a port, use HTTP defaults (80 without TLS and 443 with TLS) instead of defaulting to 8090.
Changes in 1.8.1 (2022-04-11)¶
Added a TimelineClient. Usage: https://docs.yamcs.org/python-yamcs-client/timeline/
Increased protobuf dependency from
>=3.6to>=3.8
Changes in 1.8.0 (2022-03-02)¶
Update proto files for compatibility with Yamcs v5.6.0
Changes in 1.7¶
Changes in 1.7.6 (2022-03-02)¶
Add option to set generation time when writing to parameters #18
Changes in 1.7.5 (2021-10-20)¶
Add support for
beta_args_v2argument toProcessorClient.issue_command(...)andCommandConnection.issue(...). You may use this instead ofargsto activate use of a new mechanism to submit command arguments. The new mechanism has better support for type conversions, but requires at least Yamcs v5.5.4. One example of such a conversion is that it accepts the numeric value of an enumeration state.command = processor.issue_command("/YSS/SIMULATOR/SWITCH_VOLTAGE", beta_args_v2={"voltage_num": 2})
This will become the default in a future non-minor release.
Changes in 1.7.3 (2021-09-17)¶
Use double-precision when setting float parameters #16
Add new method
stream_parameter_valuesto archive client. This allows fetching the historic values of multiple parameters at once, and uses server-streaming instead of pagination. #15WebSocket connection attempts close immediately (instead of timing out) when server is unavailable
Changes in 1.7.2 (2021-08-05)¶
Adapt
archive.list_parameter_ranges(...)to a recent API changeAdd options
min_rangeandmax_valuestoarchive.list_parameter_ranges(...)to allow generating smaller responsesMake it possible to specify a custom TLS CA bundle via the
tls_verifyoption of a client constructor. #14
Changes in 1.7.1 (2021-07-01)¶
Parameter info additionally exposes access to engineering units, enumeration values and data encoding properties.
Improves error handling for unknown hosts
Fixes an issue with WebSocket replies ignoring the timeout parameter
Changes in 1.7.0 (2021-06-14)¶
Add compatibility with Python 3.10
Add
create_container_subscription(...)toProcessorClientMake use of implicit namespace packages.
Note: if you do not use pip, but instead install yamcs-client from a clone of this repository (python setup.py develop or python setup.py install), remove manually any yamcs*-nspkg.pth files from your site-packages (python setup.py uninstall yamcs-client will not remove such files).
Changes in 1.6¶
Changes in 1.6.6 (2021-05-25)¶
Remove version restriction on websocket-client dependency
Add
create_packet_subscription(...)toProcessorClient#13
Changes in 1.6.5 (2021-03-19)¶
Support writing to local binary/array/aggregate/time params #10
Add download operations to file transfer client (in case of a supporting server implementation)
Changes in 1.6.4 (2021-02-24)¶
Added operations for Yamcs TCO API
Server-values of type
NONEare now supported, and get mapped to PythonNone.Generalized
CFDPtoFile Transfer. Old code paths remain in place, but with deprecation warnings.
# BEFORE
cfdp_client = yamcs_client.get_cfdp_client(instance="test")
cfdp_client.upload(...)
# NOW
cfdp_client = yamcs_client.get_file_transfer_client(instance="test")
service = cfdp_client.get_service(name="cfdp0") # Assuming cfdp0 is the service's name in yamcs.[instance].yaml
service.upload(...)
Exposed maintenance methods for rebuilds of table histograms, and the Parameter Archive.
Changes in 1.6.3 (2020-12-19)¶
CFDP: Operations should now be explicit about which service they use. Old code paths remain in place, but with deprecation warnings.
# BEFORE
cfdp_client = yamcs_client.get_cfdp_client(instance="test")
cfdp_client.upload(...)
# NOW
cfdp_client = yamcs_client.get_cfdp_client(instance="test")
service = cfdp_client.get_service(name="cfdp0") # Assuming cfdp0 is the service's name in yamcs.[instance].yaml
service.upload(...)
CFDP: Added
source_entity,destination_entityoptions on uploadProcessor: Rename methods on the link subscription:
list_data_linksrenamed tolist_links,get_data_linktoget_link. A similar rename was already done in the past on theProcessorClientitself.Tables: Optimized table-load operation (bigger chunks)
Changes in 1.6.2 (2020-11-06)¶
Fixes an issue with retrieval of authentication settings
Drops Python 3.5 (end of life)
Changes in 1.6.1 (2020-10-22)¶
Restores the Protobuf compatibility to >= 3.6. Previously the generated messages were accidentally requiring a more recent version than the declared dependency range.
Fixes a few bugs related to broken references.
Changes in 1.6.0 (2020-10-13)¶
datetimeinstances derived from server messages are now timezone-aware using the client’s local timezone (previously they were naive and silently assumed to be UTC). If desired, you can force the use of a UTC timezone by setting the environment variablePYTHON_YAMCS_CLIENT_UTCto1. (#8)datetimeinstances provided as input to client methods must now be timezone-aware (previously the timezone information was ignored and assumed to be UTC). You can use any tzinfo implementation.Commands now accept a
dictfor aggregate arguments, and adatetimefor time arguments.
Changes in 1.5¶
Changes in 1.5.3 (2020-08-19)¶
Add an operation for exporting raw packets
Changes in 1.5.2 (2020-08-06)¶
Fix an issue with setting extra attributes on a command
Added operations for Yamcs CFDP API
Changes in 1.5.1 (2020-07-06)¶
Fix issue with sequence generation of commands
Changes in 1.5.0 (2020-07-03)¶
Update to Yamcs 5.0.0
Link operations are now grouped in a LinkClient
SQL results can be iterated
Python 2.7 support is now removed. Use 3.5 or higher
Changes in 1.4¶
Changes in 1.4.6 (2020-04-30)¶
Fix auth issue when the first call uses the websocket api (#6)
In
issue_command, TC arguments of typeBINARYmay now also be specified using values of typebytes(py3) orbytearray(py2 + py3). Previously only hexlified strings were accepted.Some imports were updated to match latest Yamcs API.
Changes in 1.4.5 (2020-04-01)¶
Fix processor subscription of top-level parameters of type aggregate and array
Provide MDB-level access to array/aggregate type structure of parameters