Skip to main content

Toolbox for extracting trajectories and monitoring vessels from raw AIS records.

Project description

Python Trajectory Search Agent (PyTSA) for raw AIS records

Accompanying implementation of our Ocean Engineering publication: An open-source framework for data-driven trajectory extraction from AIS data — The α-method

This module provides a set of functionalities around Automatic Identification System (AIS) messages, such as

  • Decoding raw AIS messages
  • Extracting clean, practical and interpolated trajectories from the data, based on various (also user-defined) filters.
  • Providing an easy-to-use interface for observing target ships and their state around a given time and position.

Motivation

Simulation studies in maritime contexts often lack an easy-to-use model for vessel traffic extraction around a simulated vessel, as the large amounts of AIS records make it challenging and time-consuming to pinpoint the exact vessels to be monitored.

Also, for validating path-following, or collision avoidance systems, it is beneficial to use real-world trajectories, as they often provide a larger variety of movement patterns than simulated trajectories. However, the exact process of extracting the relevant information from the raw AIS data is often not sufficiently documented, thus making it difficult to reproduce the results.

Therefore, this module aims to provide a unified, open-source solution for extracting relevant trajectories from raw AIS data, as well as providing an easy-to-use interface for observing target ships around a given position and time.

Installation

Install the package via pip:

$ pip install pytsa-ais

Usage

Raw AIS data

One file of raw AIS records must only contain dynamic AIS messages (Types 1,2,3 and 18) or static AIS messages (Type 5). A combination of both is not supported. The data must be provided in the .csv format and must be named YYYY_MM_DD.csv. Other file names are not supported.

This is done to avoid extra-day sorting of the data, which would be necessary if the data was not sorted by date. Intra-day sorting is done regardless of the file name.

Individual files must contain the following columns:

  • timestamp: ISO 8601 parseable date format (e.g. "2021-07-03T00:00:00.000Z")
  • message_id: AIS message type (1,2,3,5,18)

For dynamic AIS messages (Types 1,2,3,18) additionally

  • raw_message: For messages of type 1,2,3,18, the raw message consists of a single AIVDM sentence.

For static AIS messages (Type 5) additionally:

  • raw_message1: First AIVDM sentence
  • raw_message2: Second AIVDM sentence

Example Table for dynamic AIS messages

timestamp message_id raw_message
2021-07-03T00:00:00.000Z 1 "!ABVDM,1,1,,B,177PhT001iPWhwJPsK=9DoQH0<>i,0*7C"

Example Table for static AIS messages

timestamp message_id raw_message1 raw_message2
2021-07-03T00:00:00.000Z 5 "!ABVDM,2,1,5,A,53aQ5aD2;PAQ0@8l000lE9LD8u8L00000000001??H<886?80@@C1F0CQ4R@,0*35" "!ABVDM,2,2,5,A,@0000000000,2*5A"

For more information on the AIS message structure, see here.

Decoding AIS messages

Once your raw AIS data is in the correct format, you can decode the AIS messages by calling the decode() function. The function takes as arguments the path to a directory containing the raw AIS data, as well as the path to the output directory. The function will then decode all .csv files in the input directory and save the decoded data to the output directory under the same file name.

from pytsa import decode

decode(
    source = "path/to/raw_dir",
    dest = "path/to/decoded_dir",
    njobs = 1
)

For decoding AIS messages, you can choose between single-processing and multi-processing decoding. The multi-processing decoding is recommended for large datasets containing multiple files, as it is significantly faster than single-process decoding. However, during decoding, the files are loaded into memory in their entirety, which may lead to memory issues for large datasets or a large number of jobs. Therefore, it is recommended to use single-processing decoding for smaller datasets or if you encounter memory issues. Parallel decoding may also not be avialable on Windows systems (due to the lack of testing on Windows systems, this is not guaranteed, sorry...)

Decoded AIS data

In case you already have decoded AIS messages, you have to make sure, that the fields of your .csv file at least partially match Msg12318Columns and Msg5Columns at pytsa/decode/filedescriptor.py.

In case you have a different data structure, you can either adapt the Msg12318Columns and Msg5Columns classes, or you can adapt the column names of your .csv file to match the column names of the Msg12318Columns and Msg5Columns classes.

Using the SearchAgent for extracting target ships

The central object of the module is the SearchAgent class, which provides an easy-to-use interface for extracting target ships around a given position and time.

Possible applications include:

  • Tracking traffic around a simulated route
  • Monitoring traffic around a fixed location
  • Extracting trajectories

The Search Agent must be instantiated with three components: Its BoundingBox, msg12318files and msg5files:

  • BoundingBox: Reference frame containing the spatial extent of the searchable area in degrees of latitude and longitude.

  • msg12318files: File path to a .csv file containing decoded dynamic AIS messages (Types 1,2,3 and 18 only) to consider for the search procedure. See the next section for details on the data structure.

  • msg5files: File path to the corresponding .csv file containing decoded static AIS messages (message type 5)

Example instantiation for a small area in the North Sea:

import pytsa
from pathlib import Path

# Lat-Lon Box with [lat,lon, SOG, COG] outputs
frame = pytsa.BoundingBox(
    LATMIN = 52.2, # [°N]
    LATMAX = 56.9, # [°N]
    LONMIN = 6.3,  # [°E]
    LONMAX = 9.5,  # [°E]
)

dynamic_data = Path("/path/to/dynamic.csv")
static_data = Path("/path/to/static.csv")

search_agent = pytsa.SearchAgent(
    msg12318file = dynamic_data,
    msg5file = static_data
    frame = frame
)

Monitoring vessel traffic around a given position

To commence a search for ships around a given location, it is mandatory to use a TimePosition object to store the position and time at which the search shall be commenced simultaneously. Example:

from pytsa import TimePosition

tpos = TimePosition(
    timestamp="2021-07-03T12:03:00.000Z",
    lat=52.245,
    lon=9.878
)

After defining a TimePosition, a search can be commenced by freezing the search agent at the given position and time

target_ships = search_agent.freeze(tpos)

yielding a list of TargetShip objects (see pytsa/targetship.py for more information).

By default, the resulting TargetShip objects used linear interpolation to estimate the current position, speed and course of the target ships. If instead, cubic spline interpolation is desired, the interpolation option can be set to spline. Additionally, the search_radius can be set to a custom value in nautical miles.

target_ships = search_agent.freeze(
    tpos, 
    interpolation="spline", 
    search_radius=5 # [nm]
)

To get the current Latitude, Longitude, SOG, COG for each TargetShip object at the provided timestamp, the observe() method can be used, returning a numpy array with the current position, speed and course.

for ship in target_ships:
    ship.observe()

# Example output for one ship
# 
# Interpolated COG ---------------
# Interpolated SOG -----------    |
# Interpolated Longitude-|   |    |
# Interpolated Latitude  |   |    |
#                v       v   v    v
>>> np.array([52.232,9.847,12.34,223.4])

Full example

import pytsa
from pathlib import Path

# Global geographic search area.
# Outside these bounds, no search will be commenced
frame = pytsa.BoundingBox(
    LATMIN = 52.2, # [°N]
    LATMAX = 56.9, # [°N]
    LONMIN = 6.3,  # [°E]
    LONMAX = 9.5,  # [°E]
)

# File containing AIS messages
dynamic_data = Path("/path/to/dynamic.csv")
static_data = Path("/path/to/static.csv")

# Instantiate the search agent with the source file 
# and the search area
search_agent = pytsa.SearchAgent(
    msg12318file = dynamic_data,
    msg5file = static_data
    frame = frame
)

# Provide a position and time for which the search
# will be carried out
tpos = pytsa.TimePosition(
    timestamp="2021-07-03T12:03:00.000Z",
    lat=52.245,
    lon=9.878
)

# Search for TargetVessels with 
# default settings: 
#   Linear interpolation, 
#   20 nm search radius
target_ships = search_agent.freeze(tpos)

# Extract the current position, speed and
# course for all found target vessels.
for ship in target_ships:
    ship.observe()

# Example output for one ship
>>> np.array([52.232,9.847,12.34,223.4])

Extracting trajectories

If instead of observing target ships around a given position, you want to extract trajectories from the data, you can use the SearchAgent.extract_all() method.

By default, the extract_all() method walks through the entire dataset and extracts all trajectories that are within the search area utilizing the split-point approach from Section 6 in our original paper. The method returns a dictionary with the MMSI as keys and the corresponding TargetShip objects as values. The default signature looks like this

from pytsa import TREXMethod
all_ships = search_agent.extract_all(
    method = TREXMethod.PAULIG,
    njobs = 4,
    skip_tsplit = False,
    **skwargs
)

Changing the method allows you to switch between the trajectory extraction procecees of Paulig and Okhrin (2024) (Ours), Zhao et al. (2018) or Guo at al. (2021). The methods of Paulig and Guo feature additional keyword arguments (skwargs) to control the trajectory extraction process:

Method Keyword(s)
Paulig and Okhrin (2024) alpha (default = 0.05):
cutoff quantile for the empirical distribution functions (refer to Section 6)
Guo et al. (2021) vlim (default = 30):
cutoff value for changes in speed in knots for two consectutive messages be counted to the same trajectory
- clim (default 2):
cutoff value for chanes in heading in degrees for two consectutive messages be counted to the same trajectory

To skip the split-point approach entirely you can set the skip_tsplit parameter to True. This will result in TargetShip objects that only contain a single trajectory, which is the raw, time-ordered set of AIS messages for the given MMSI.

The extract_all() method used 4-core parallel processing by default. This can be adjusted by setting the njobs parameter to a custom value. Note, that high njobs values may lead to a slowdown due to the overhead of splitting the data into chunks and reassembling the results. Keep Amdahl's law in mind.

The trajectories of each TargetShip object can be accessed by the tracks attribute, which is of type list[Track]. Each Track within the tracks list contains the AIS messages for a single trajectory. See the pytsa.structs.AISMessage module for more information on the fields of the AIS messages.

# Example for printing the positions for each trajectory
for ship in all_ships.values():
    for track in ship.tracks:
        for msg in track:
            print(msg.lat, msg.lon)

The trajectories extracted via the extract_all() method are not interpolated by default. To manually interpolate them, you can use the interpolate() method of the TargetShip object.

for ship in all_ships.values():
    ship.interpolate(mode="linear") # or "spline"

Refer also to the function documentation for further details.

Refining trajectories using the Inspector class

Once the TargetShips with its trajectories are extracted, PyTSA provides a flexible interface for refining the trajectories using the Inspector class. The output of the Inspector is two dictionaries [accepted,rejected], of type dict[MMSI,TargetShip]. The first dictionary contains the TargetShip objects that passed the inspection, while the second dictionary contains the TargetShip objects that failed the inspection.

Note: It is possible that the same MMSI is present in both dictionaries. If so, the TargetShip object in the rejected dictionary will contain only rejected trajectories, while the TargetShip object in the accepted dictionary will contain only accepted trajectories.

The Inspector works with a set of rules, that must be combined into a Recipe object, which is then passed to the Inspector object.

Before we show an example, let's explain the concept of rules and recipes:

Rules

A rule is a function following the signature rule(track: Track) -> bool. It takes a single Track object as input and returns a boolean value. Rules are set to act as a negative filter, meaning that if a rule returns True, the corresponding Track will be removed from the TargetShip object.

It is possible for rules to have more than one argument, like rule(track: Track, *args, **kwargs) -> bool, however, for constructing a recipe, all other arguments must be pre-set, for example by using a lambda function, or the functools.partial function.

A simple rule that removes all tracks with less than 10 AIS messages would look like this:

from pytsa import Track

def track_too_short(track: Track) -> bool:
    return len(track) < 10

A rule filtering trajectories whose latitude is outside given bounds could look like this:

def lat_outside_bounds(track: Track, latmin: float, latmax: float) -> bool:
    return any([msg.lat < latmin or msg.lat > latmax for msg in track])

Feel free to define your own rules, or use the ones provided in the pytsa.trajectories.rules module.

Recipes

A recipe is a list of rules that are combined into a single function using the Recipe class.

from pytsa import Recipe
from fuctools import partial

# Create a recipe with the 
# two rules defined above.
recipe = Recipe(
    track_too_short,
    partial(lat_outside_bounds, latmin=52.2, latmax=56.9)
)

Applying the recipe to the Inspector

Once the recipe is created, it can be passed to the Inspector object, which will then apply the recipe to the TargetShip objects, filtering out the trajectories that do not pass the rules.

from pytsa import Inspector

inspector = Inspector(all_ships, recipe)
accepted, rejected = inspector.inspect()

Visualizing AIS data

This module provides various functions for visualizing AIS data. Currently, there exist two groups of functions:

  • Functions for visualizing the empirical distribution functions used in the split-point approach in the original paper. These functions are located in the pytsa.visualization.ecdf module. They are intended to both make the results of the split-point approach more transparent and to provide a tool for adapting the split-point approach to different datasets.

  • Miscellaneous functions can be found in the pytsa.visualization.misc module. Currently, the following functionalities are provided:

    • Plotting the trajectories on a map
    • Comparing trajectories based on different σ_ssd ranges (see Figure 12 in the original paper)
    • Plotting all trajectories as a heatmap
    • Generating a pixel map of average smoothness as a function of the number of messages in a trajectory and the spatial standard deviation of the trajectory (Figure 14 in the paper)

Issues and Contributing

This project is actively maintained by the author of the paper. If you have suggestions, feature requests, or find any bugs, feel free to open an issue on this repository. Contributions and feedback are always welcome!

If you encounter any issues or have any suggestions for improvements, you are invited to open an issue or a pull request.

Citation

If you use this module in your research, please consider citing this repository as follows:

@misc{pytsa2024,
  author = {Paulig, Niklas},
  title = {{PyTSA}: Python Trajectory Splitting and Assessment Agent for AIS Data},
  year = {2024},
  publisher = {GitHub},
  journal = {GitHub repository},
  howpublished = {\url{https://github.com/nikpau/pytsa}},
}

Appendix

Split-point procedure

The split-point procedure takes place in the pytsa.tsea.split module. Its main function, is_split_point(), will be called on every pair of AIS messages in the dataset. The function returns a boolean value, indicating whether the pair of messages is a split point or not.

In case you want to adapt the split-point procedure to your dataset, you can use the pytsa.tsea.split module as a starting point.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

pytsa_ais-2.3.14-cp313-none-win_amd64.whl (1.8 MB view details)

Uploaded CPython 3.13 Windows x86-64

pytsa_ais-2.3.14-cp313-none-win32.whl (1.8 MB view details)

Uploaded CPython 3.13 Windows x86

pytsa_ais-2.3.14-cp313-cp313-musllinux_1_1_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.13 musllinux: musl 1.1+ x86-64

pytsa_ais-2.3.14-cp313-cp313-musllinux_1_1_armv7l.whl (2.2 MB view details)

Uploaded CPython 3.13 musllinux: musl 1.1+ ARMv7l

pytsa_ais-2.3.14-cp313-cp313-musllinux_1_1_aarch64.whl (2.1 MB view details)

Uploaded CPython 3.13 musllinux: musl 1.1+ ARM64

pytsa_ais-2.3.14-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.13 manylinux: glibc 2.17+ x86-64

pytsa_ais-2.3.14-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl (2.0 MB view details)

Uploaded CPython 3.13 manylinux: glibc 2.17+ s390x

pytsa_ais-2.3.14-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (2.0 MB view details)

Uploaded CPython 3.13 manylinux: glibc 2.17+ ppc64le

pytsa_ais-2.3.14-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.9 MB view details)

Uploaded CPython 3.13 manylinux: glibc 2.17+ ARMv7l

pytsa_ais-2.3.14-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.9 MB view details)

Uploaded CPython 3.13 manylinux: glibc 2.17+ ARM64

pytsa_ais-2.3.14-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl (1.9 MB view details)

Uploaded CPython 3.13 manylinux: glibc 2.5+ i686

pytsa_ais-2.3.14-cp313-cp313-macosx_11_0_arm64.whl (1.9 MB view details)

Uploaded CPython 3.13 macOS 11.0+ ARM64

pytsa_ais-2.3.14-cp313-cp313-macosx_10_12_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.13 macOS 10.12+ x86-64

pytsa_ais-2.3.14-cp312-none-win_amd64.whl (1.8 MB view details)

Uploaded CPython 3.12 Windows x86-64

pytsa_ais-2.3.14-cp312-none-win32.whl (1.8 MB view details)

Uploaded CPython 3.12 Windows x86

pytsa_ais-2.3.14-cp312-cp312-musllinux_1_1_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.12 musllinux: musl 1.1+ x86-64

pytsa_ais-2.3.14-cp312-cp312-musllinux_1_1_armv7l.whl (2.2 MB view details)

Uploaded CPython 3.12 musllinux: musl 1.1+ ARMv7l

pytsa_ais-2.3.14-cp312-cp312-musllinux_1_1_aarch64.whl (2.1 MB view details)

Uploaded CPython 3.12 musllinux: musl 1.1+ ARM64

pytsa_ais-2.3.14-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

pytsa_ais-2.3.14-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl (2.0 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ s390x

pytsa_ais-2.3.14-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (2.0 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ppc64le

pytsa_ais-2.3.14-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.9 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ARMv7l

pytsa_ais-2.3.14-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.9 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ARM64

pytsa_ais-2.3.14-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl (1.9 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.5+ i686

pytsa_ais-2.3.14-cp312-cp312-macosx_11_0_arm64.whl (1.9 MB view details)

Uploaded CPython 3.12 macOS 11.0+ ARM64

pytsa_ais-2.3.14-cp312-cp312-macosx_10_12_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.12 macOS 10.12+ x86-64

pytsa_ais-2.3.14-cp311-none-win_amd64.whl (1.8 MB view details)

Uploaded CPython 3.11 Windows x86-64

pytsa_ais-2.3.14-cp311-none-win32.whl (1.8 MB view details)

Uploaded CPython 3.11 Windows x86

pytsa_ais-2.3.14-cp311-cp311-musllinux_1_1_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.11 musllinux: musl 1.1+ x86-64

pytsa_ais-2.3.14-cp311-cp311-musllinux_1_1_armv7l.whl (2.2 MB view details)

Uploaded CPython 3.11 musllinux: musl 1.1+ ARMv7l

pytsa_ais-2.3.14-cp311-cp311-musllinux_1_1_aarch64.whl (2.1 MB view details)

Uploaded CPython 3.11 musllinux: musl 1.1+ ARM64

pytsa_ais-2.3.14-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

pytsa_ais-2.3.14-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl (2.0 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ s390x

pytsa_ais-2.3.14-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (2.0 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ppc64le

pytsa_ais-2.3.14-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.9 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARMv7l

pytsa_ais-2.3.14-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.9 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

pytsa_ais-2.3.14-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl (1.9 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.5+ i686

pytsa_ais-2.3.14-cp311-cp311-macosx_11_0_arm64.whl (1.9 MB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

pytsa_ais-2.3.14-cp311-cp311-macosx_10_12_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.11 macOS 10.12+ x86-64

pytsa_ais-2.3.14-cp310-none-win_amd64.whl (1.8 MB view details)

Uploaded CPython 3.10 Windows x86-64

pytsa_ais-2.3.14-cp310-none-win32.whl (1.8 MB view details)

Uploaded CPython 3.10 Windows x86

pytsa_ais-2.3.14-cp310-cp310-musllinux_1_1_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.10 musllinux: musl 1.1+ x86-64

pytsa_ais-2.3.14-cp310-cp310-musllinux_1_1_armv7l.whl (2.2 MB view details)

Uploaded CPython 3.10 musllinux: musl 1.1+ ARMv7l

pytsa_ais-2.3.14-cp310-cp310-musllinux_1_1_aarch64.whl (2.1 MB view details)

Uploaded CPython 3.10 musllinux: musl 1.1+ ARM64

pytsa_ais-2.3.14-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

pytsa_ais-2.3.14-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl (2.0 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ s390x

pytsa_ais-2.3.14-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (2.0 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ppc64le

pytsa_ais-2.3.14-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.9 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARMv7l

pytsa_ais-2.3.14-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.9 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

pytsa_ais-2.3.14-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl (1.9 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.5+ i686

pytsa_ais-2.3.14-cp310-cp310-macosx_11_0_arm64.whl (1.9 MB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

pytsa_ais-2.3.14-cp310-cp310-macosx_10_12_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.10 macOS 10.12+ x86-64

File details

Details for the file pytsa_ais-2.3.14-cp313-none-win_amd64.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.14-cp313-none-win_amd64.whl
Algorithm Hash digest
SHA256 59a25b41cbe91abadaafb21f3eb922142026b0234535fb9672f78aca0e22f1aa
MD5 7e2706906f262e55f05bfe727ec86112
BLAKE2b-256 88fda3ab108539074c972e0b695a134253b6733a6571bb8f6a74e211b593022d

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.14-cp313-none-win_amd64.whl:

Publisher: build.yml on nikpau/pytsa

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pytsa_ais-2.3.14-cp313-none-win32.whl.

File metadata

  • Download URL: pytsa_ais-2.3.14-cp313-none-win32.whl
  • Upload date:
  • Size: 1.8 MB
  • Tags: CPython 3.13, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for pytsa_ais-2.3.14-cp313-none-win32.whl
Algorithm Hash digest
SHA256 b8bf939c949d6f913374ad1867416b9cb7bd3f399f2fcb3c4dc346e54ce23dcd
MD5 a3660bbc474a4fb8fdb350d8cb7e6cec
BLAKE2b-256 10ccd8559a1fc0ae2541fa69193b02cae4ce1febab92fa7df98db11d22038e78

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.14-cp313-none-win32.whl:

Publisher: build.yml on nikpau/pytsa

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pytsa_ais-2.3.14-cp313-cp313-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.14-cp313-cp313-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 6cfd61543be225df2227fbff6c886327f6ccd93b8d2fbb843d073f02e1d2c0ce
MD5 3154cd584178d9ee441f2a544d4f4bea
BLAKE2b-256 978d33a1ef9b87cad46076875e2fb26a42b15358086f0e3a1eeffcb9b26b9529

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.14-cp313-cp313-musllinux_1_1_x86_64.whl:

Publisher: build.yml on nikpau/pytsa

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pytsa_ais-2.3.14-cp313-cp313-musllinux_1_1_armv7l.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.14-cp313-cp313-musllinux_1_1_armv7l.whl
Algorithm Hash digest
SHA256 61165dacb0a7e7d446dbdbf2a9f2b093dcb299d7f0345db14bce00640fefae58
MD5 9d1010ec750bc0e75725781d286399d9
BLAKE2b-256 2e5810bab76ad9d780da959383ff669aa9d525dc78a86aa8c8fdf5437da5f517

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.14-cp313-cp313-musllinux_1_1_armv7l.whl:

Publisher: build.yml on nikpau/pytsa

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pytsa_ais-2.3.14-cp313-cp313-musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.14-cp313-cp313-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 a7d000a5cfba3000c55d8b5e46c65ec9b00781af38ce382f0595ac2f1bd1455f
MD5 df0a1df3b613e3fa8c5b9b98e5a62656
BLAKE2b-256 6a5523cdd908823ef0413ee4a42ea7b24de0004239a2ca0f25725487f03cb529

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.14-cp313-cp313-musllinux_1_1_aarch64.whl:

Publisher: build.yml on nikpau/pytsa

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pytsa_ais-2.3.14-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.14-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0a723668b63c3dc8d510fc1433ad4660d845e94e0a09ab57095b67148e8bbf4e
MD5 6c72028343318140d8afecee7800d1d7
BLAKE2b-256 e3abeefa8ccca2019c7d56cd4d937a62ef4728dd3838ba2477bfee9894691a34

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.14-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: build.yml on nikpau/pytsa

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pytsa_ais-2.3.14-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.14-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 6f9f8050790b3fb6e8cd0feac7349835ad8b80dd701815dfc007a4746cbfb43a
MD5 c11f2086daa6a36d51c6b450389191c8
BLAKE2b-256 452d2feafbe7807db153344402ecb29c2d21adb483c55c99a5a5778ed9cf37f5

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.14-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl:

Publisher: build.yml on nikpau/pytsa

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pytsa_ais-2.3.14-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.14-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 826fe36c74c85694cda9457cbc0c59efbf3dbcdc1a85281c0e110c2e2394ef3c
MD5 9ed650aad3d1b3afafecaddb457a2d35
BLAKE2b-256 c502cd879cb27efebef80c9d65e60bbdababb44b8c4f2b2dd1f5d992421689e3

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.14-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl:

Publisher: build.yml on nikpau/pytsa

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pytsa_ais-2.3.14-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.14-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 4b6dd8c91c2787b1d76b589b894cbbeaeca25b75e03135c9151a8a2618f3fe5e
MD5 798ada235422a49cedb2847beaa77e08
BLAKE2b-256 311e021056b76ccb944fc55cb30c1f4e7af2083ecd032d33e6cb87de61f5b4b4

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.14-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl:

Publisher: build.yml on nikpau/pytsa

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pytsa_ais-2.3.14-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.14-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 cc5f79c6a9ff90c413f8633de43443337e0e7110d11888d65e09a44a146ddbb3
MD5 7b45ecca5ca64b4a0af952f7d623a9c5
BLAKE2b-256 555aafa6e97526e1cbf9a63704cdf015c08a7a578b0e61ee7621c6dd4f2630d5

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.14-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: build.yml on nikpau/pytsa

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pytsa_ais-2.3.14-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.14-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 bcb0295efc88a753735d5033f96c2a11024e57355cde6dcfe19daf429f0679a8
MD5 7fcc6ebf63bac15032ce82d505739b97
BLAKE2b-256 d89a51b332f9a5677b398385560b6d645d53ea69146381c327dac5476ae14086

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.14-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl:

Publisher: build.yml on nikpau/pytsa

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pytsa_ais-2.3.14-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.14-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1cb5694dcd12f64fa1e997e1ce9cc5d449d67983e4aa9ba68e8e43baa73c189c
MD5 be31ed830ee38c20bca68adb90396676
BLAKE2b-256 7a36c34a0c07b2390ce1ec41dc957ba675684dbec0c22c367d6fad973258292f

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.14-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: build.yml on nikpau/pytsa

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pytsa_ais-2.3.14-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.14-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 92fd648dd09ae34cd973c0b95d53bcf061a63ff327b43b5f6dd059a4d38a9658
MD5 e35e6ec4fdf40be74ce63228f3e389bb
BLAKE2b-256 83fd74fb864ea338898258f46b664d8618d4e61c1ce4b25eaeac3622d0421f72

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.14-cp313-cp313-macosx_10_12_x86_64.whl:

Publisher: build.yml on nikpau/pytsa

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pytsa_ais-2.3.14-cp312-none-win_amd64.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.14-cp312-none-win_amd64.whl
Algorithm Hash digest
SHA256 146a7bceab4ec070f2617c1b45421af44d2b86b77c2aa72dacd85568dc571e48
MD5 0cba1e4acdadbf0d55e3c8df7dce0985
BLAKE2b-256 ae18e753d7faa02f4b62fb059fb330056ff8cb81c02d9b84debe0681cac5a3a0

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.14-cp312-none-win_amd64.whl:

Publisher: build.yml on nikpau/pytsa

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pytsa_ais-2.3.14-cp312-none-win32.whl.

File metadata

  • Download URL: pytsa_ais-2.3.14-cp312-none-win32.whl
  • Upload date:
  • Size: 1.8 MB
  • Tags: CPython 3.12, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for pytsa_ais-2.3.14-cp312-none-win32.whl
Algorithm Hash digest
SHA256 97310208b50b2d1886e8d43c0c35d7d2fafcf10c8ab80c51a033009582366120
MD5 a0e50d9ffca3de8481faf64805209a75
BLAKE2b-256 537f7fe41881883f09c0192b4bcbc7bef8df26caa1022dc1f0fcca4a751da101

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.14-cp312-none-win32.whl:

Publisher: build.yml on nikpau/pytsa

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pytsa_ais-2.3.14-cp312-cp312-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.14-cp312-cp312-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 387a1b495fb4e46d3bef66a969c8fd3a170575047a98740aabcbc355bed060c0
MD5 66c1b38bd1df8cce2752257db8bb0bb5
BLAKE2b-256 bd1daad7f7e6514792b03499c45369d8b655eb09653aab1a1d0a6ae61d5eeded

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.14-cp312-cp312-musllinux_1_1_x86_64.whl:

Publisher: build.yml on nikpau/pytsa

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pytsa_ais-2.3.14-cp312-cp312-musllinux_1_1_armv7l.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.14-cp312-cp312-musllinux_1_1_armv7l.whl
Algorithm Hash digest
SHA256 d9d681bd19efd11fde7bab565438cdb38e228fb8b386d5aa93e6f0e511dd1e5b
MD5 9973aa42caf06d99fa66298e870451fb
BLAKE2b-256 a92a30ea3431e45cc4e5217cea12267d791a39f086b7de26ea03f43f5fe09f81

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.14-cp312-cp312-musllinux_1_1_armv7l.whl:

Publisher: build.yml on nikpau/pytsa

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pytsa_ais-2.3.14-cp312-cp312-musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.14-cp312-cp312-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 601eaa41a18b311f81147ce857db9a242c249d0c96b646a4d8ac0cab5dd45c2d
MD5 a6102a8d60aef3a9df1653a19fd6032b
BLAKE2b-256 ca1ff198def980cc93bf3083cdc0f521c837b4cd3a9119424a2ddad108002ce0

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.14-cp312-cp312-musllinux_1_1_aarch64.whl:

Publisher: build.yml on nikpau/pytsa

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pytsa_ais-2.3.14-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.14-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e2570173c05f564ad2f8b416d328e8594ec40c6c41cc55a29dbe606d4b588e28
MD5 294bf0d541a5fd99ac3e4d4189f56253
BLAKE2b-256 659b95cf9bbb30bc0476d0fc066981e4257e433d93cc6e3356d897db5510cede

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.14-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: build.yml on nikpau/pytsa

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pytsa_ais-2.3.14-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.14-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 c1d31abb1a6e6697803bf4e0b63f651698fd16b9733c765c41a6a7ec0922b1de
MD5 a88c116773b60b20be8c1430b644e345
BLAKE2b-256 78414aa84cfbce4fdc6f71abadfe69bb8d271491a67d851b56e449fdc35e3cba

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.14-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl:

Publisher: build.yml on nikpau/pytsa

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pytsa_ais-2.3.14-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.14-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 7fb82977bcdacf780c7648d4733df1ae38ca0a5bf859b43b82ee7448c552290e
MD5 e6c1871590c11955b68a375097d422fe
BLAKE2b-256 f2a08cf6c364b5ba098cb2b9545625392c2580024cc68282236335225cd052ff

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.14-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl:

Publisher: build.yml on nikpau/pytsa

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pytsa_ais-2.3.14-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.14-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 d6c4296e94a7c1c6a8297c1483805dacac1fb3904848d8a40871502f6098e9c6
MD5 1c4794c35d367d85cb4ec7450eb569bc
BLAKE2b-256 fb92de49bb31e21a966a84e5ceece7f15e18ebd742606c09d4a3b2f74a31aef7

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.14-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl:

Publisher: build.yml on nikpau/pytsa

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pytsa_ais-2.3.14-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.14-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 cabbbbe3a0f9a5d397c8a52c9af4b7cb81c68cf5097f8f67b44642135a1cfd5d
MD5 a7c7688372b2e65ca1a28a45826ec620
BLAKE2b-256 7e4bc27b73e918035d23dba4b6d16f45eab10f3b223cc7ab0121822aba24c596

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.14-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: build.yml on nikpau/pytsa

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pytsa_ais-2.3.14-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.14-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 c9434dbb6f139c803672b10f7d48e5555b421f9722c27c4586d8d52fd842dc98
MD5 f9614d7617d861a027931fa3fb40cd25
BLAKE2b-256 28a57f92282193ad7b4c5f5dc58ae433a2f12046416c278b887c2b1fd25906b4

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.14-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl:

Publisher: build.yml on nikpau/pytsa

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pytsa_ais-2.3.14-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.14-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b5f56479b69d9e4e503d3adaa84df1318d3c813fdce5371eea6f4b3dc19d2bae
MD5 27829d5678a338cda5b1823349cc2b87
BLAKE2b-256 d517dabafa7664a0cf0bba14e92ac057fb5ba4a719f434fe257cbf82eaad5f6b

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.14-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: build.yml on nikpau/pytsa

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pytsa_ais-2.3.14-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.14-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 8b97df5b5c7a7788c809f5fb769a3f431f837e64147e65671e8935539724fe51
MD5 dc9e3225c1bf05df6e47609e49af3a67
BLAKE2b-256 6f09182b8260526a0441852102b25f4de64a0f83e286ac59f953fb05dfa29789

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.14-cp312-cp312-macosx_10_12_x86_64.whl:

Publisher: build.yml on nikpau/pytsa

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pytsa_ais-2.3.14-cp311-none-win_amd64.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.14-cp311-none-win_amd64.whl
Algorithm Hash digest
SHA256 e5c16d6c0ffc1f68a6591996423b8a660c6e2b0928272c219f4b47ffe118924e
MD5 7e9a66aab533a0889b1a96000a31cf89
BLAKE2b-256 e9fbaa2bd807778f98dad868208d1c00171d40af8e149f53305b9d1245392e4a

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.14-cp311-none-win_amd64.whl:

Publisher: build.yml on nikpau/pytsa

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pytsa_ais-2.3.14-cp311-none-win32.whl.

File metadata

  • Download URL: pytsa_ais-2.3.14-cp311-none-win32.whl
  • Upload date:
  • Size: 1.8 MB
  • Tags: CPython 3.11, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for pytsa_ais-2.3.14-cp311-none-win32.whl
Algorithm Hash digest
SHA256 2dddad8cbdb9507bb53389e70179424c8aeaf4f2840cf62600522b9e97c0e042
MD5 53af8769164b2deb2c868465631224e6
BLAKE2b-256 56ff92ef143562ff91807cb485de44eb2f7eb53320ad17b8e6113945048f6359

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.14-cp311-none-win32.whl:

Publisher: build.yml on nikpau/pytsa

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pytsa_ais-2.3.14-cp311-cp311-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.14-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 2b55774398029d86ef1810776510b14947ca75ce4513a709c32f82547652baf2
MD5 da164980f0de9ac550c5bac61b8c753a
BLAKE2b-256 657ef0cd08e172f997f2d64bd4bb280583d3ae9e7df44b8f5e6fe1991929dd36

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.14-cp311-cp311-musllinux_1_1_x86_64.whl:

Publisher: build.yml on nikpau/pytsa

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pytsa_ais-2.3.14-cp311-cp311-musllinux_1_1_armv7l.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.14-cp311-cp311-musllinux_1_1_armv7l.whl
Algorithm Hash digest
SHA256 d44f3c8e27947eeec98aa717770055003f8f921ad9f7f85ff981f2eaaefef0c3
MD5 05d53f92b3a8be5792caa19706073381
BLAKE2b-256 02806a454ccfb2fb124cd93ae88e0cdc5dae74071bbf8f9721fe1ea854518c90

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.14-cp311-cp311-musllinux_1_1_armv7l.whl:

Publisher: build.yml on nikpau/pytsa

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pytsa_ais-2.3.14-cp311-cp311-musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.14-cp311-cp311-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 ff2dc78f29a048ef772552079de3cb4a991150f93079944c46c9350c930ec389
MD5 0a314d59f8f4afae7567a39675268e68
BLAKE2b-256 4fa6a31530f2bc4138400598a588a81bee2c001c8f2f67cf669c0cd0bc46d4f2

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.14-cp311-cp311-musllinux_1_1_aarch64.whl:

Publisher: build.yml on nikpau/pytsa

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pytsa_ais-2.3.14-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.14-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9817e812ab2843aab6726ca19078a9adde2582276b859c757c4538749f865f59
MD5 a699d2cef23252a4a22697a79f851956
BLAKE2b-256 e273eab4ad0bff3574b1926362791c5ef929ddd2b4b098dcc70ca01a1a25aed9

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.14-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: build.yml on nikpau/pytsa

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pytsa_ais-2.3.14-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.14-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 5473306cb2e5c73dd7201dfdab7e0f039275af10390751b5ce8c800d0e98bf35
MD5 bb6eebd1a2308380f18e2b8568895243
BLAKE2b-256 e5d2409629d41fc5959cd939dd6c98c4c2fb47e2779eac8fa8f7f0fe40881193

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.14-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl:

Publisher: build.yml on nikpau/pytsa

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pytsa_ais-2.3.14-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.14-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 8bed8cf96664f29a6f329d5146538b680ac324d387de56c1faf558f412650943
MD5 1266e9caf404e9337043fbe48921fa91
BLAKE2b-256 5dfb321e3e01182f38a06c9b9e2a9c7701981a07c96e3fee00699062292d48f1

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.14-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl:

Publisher: build.yml on nikpau/pytsa

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pytsa_ais-2.3.14-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.14-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 86e89047f2298cb202da10787ed18168b02a23a8e3f58b5ea0d43120bacf2b52
MD5 f76c15dfae1880b7ad40bb1c1c397ef5
BLAKE2b-256 dffd6ce0debd2d528880e0085698445f773623fe33ff483b577901ace8945a3d

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.14-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl:

Publisher: build.yml on nikpau/pytsa

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pytsa_ais-2.3.14-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.14-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 54c91db2ad9ddbb43ae2ed942691f1675b92ce0458f6c1a7fff464847f06a8f3
MD5 54bcff0588ca1978578041bc7ddc2cdc
BLAKE2b-256 0c0128cb5a6e4d653454e926b6e61957469146eb9b90b305919279f19aab77d3

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.14-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: build.yml on nikpau/pytsa

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pytsa_ais-2.3.14-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.14-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 ea26229ff94f7f5b96dceada7ca925e37bee87401ef3717287a375f0510df026
MD5 6bd416b40531eebf7b8eb1641577dd2c
BLAKE2b-256 ed09517c466f5712608c70d3e33638be57c496a104862f1148b26694aa083001

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.14-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl:

Publisher: build.yml on nikpau/pytsa

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pytsa_ais-2.3.14-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.14-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 afe06fecead513f15e4506edee763097f46c61e6b32f3181b94c2b6744c11ac5
MD5 b346264dbc3a0efc791666121094e557
BLAKE2b-256 94d85a5e70739fe61e414b6ee20279ab9a21df833e225cd4ac2c14ef09e4508a

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.14-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: build.yml on nikpau/pytsa

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pytsa_ais-2.3.14-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.14-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 abde1b3d4c22eccd122060903514208c3fee8cbb283f1125892294ce22667e25
MD5 b7c017426adf626d0970c062c1a8a207
BLAKE2b-256 794a4c9e583f5f814d446c338502cb66762f39326c47f5f407e409782b583493

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.14-cp311-cp311-macosx_10_12_x86_64.whl:

Publisher: build.yml on nikpau/pytsa

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pytsa_ais-2.3.14-cp310-none-win_amd64.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.14-cp310-none-win_amd64.whl
Algorithm Hash digest
SHA256 363783838f74921200bdc16f7a0bc3f4688d4ffc6947b85572e4c5809b983055
MD5 2a39b7cae0c2c69f9b50926d035bfdb7
BLAKE2b-256 0e941a47c31f1338029f33dfb6f92b301501d8101498da43525016ddd546eb81

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.14-cp310-none-win_amd64.whl:

Publisher: build.yml on nikpau/pytsa

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pytsa_ais-2.3.14-cp310-none-win32.whl.

File metadata

  • Download URL: pytsa_ais-2.3.14-cp310-none-win32.whl
  • Upload date:
  • Size: 1.8 MB
  • Tags: CPython 3.10, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for pytsa_ais-2.3.14-cp310-none-win32.whl
Algorithm Hash digest
SHA256 6f28814ec512eb9feb204787f075c814e8068defb188a871a62e99514f848cc2
MD5 93109f3162b5ba7dc6bb6e54a418cb98
BLAKE2b-256 4ba39bc837121bc061f9499d5a7574503a0e99e3c108e2a01cf6e2e869473fd6

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.14-cp310-none-win32.whl:

Publisher: build.yml on nikpau/pytsa

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pytsa_ais-2.3.14-cp310-cp310-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.14-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 0d175693476dd8262162972e727c0f468e5a007fcf61f9d16c5e059daa97915f
MD5 fbb450323902806a60a029e691aaf2cd
BLAKE2b-256 32cdc1d4ae78eee4255d0b9262f18374dbe11cb97489c7ecc19f3a82faeb83d9

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.14-cp310-cp310-musllinux_1_1_x86_64.whl:

Publisher: build.yml on nikpau/pytsa

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pytsa_ais-2.3.14-cp310-cp310-musllinux_1_1_armv7l.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.14-cp310-cp310-musllinux_1_1_armv7l.whl
Algorithm Hash digest
SHA256 6dda61551b9adf84d76ed4be7e47553e24c11b89285019872b5979aa616aa858
MD5 27500736956c6a5640f4f5508c794088
BLAKE2b-256 66333f8af257e52187dc5a9627d1b31282441ab464129087dd599c7c6bf07b54

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.14-cp310-cp310-musllinux_1_1_armv7l.whl:

Publisher: build.yml on nikpau/pytsa

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pytsa_ais-2.3.14-cp310-cp310-musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.14-cp310-cp310-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 72571b2ac229c26531bcb00c02fbc2b0d86a89914a60dfead397a757c522075b
MD5 eb32ee8e2f59be738af47f1ca14d1f32
BLAKE2b-256 af4cbe07123aeebd2dfb4da5c667185bd6bca7368096caf207bc79d0540cdb21

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.14-cp310-cp310-musllinux_1_1_aarch64.whl:

Publisher: build.yml on nikpau/pytsa

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pytsa_ais-2.3.14-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.14-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 26041df44dcb1623fdab2e77c363a4a7146f58ce2461a543f0b8229256a8637b
MD5 4c0d8540f761b58fede007a31e96a5db
BLAKE2b-256 2d040d4e061e42b7120a734086efd6e1006ecef6e0165ab2574711f8509febc1

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.14-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: build.yml on nikpau/pytsa

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pytsa_ais-2.3.14-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.14-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 88d6586556ea351851de17c5281bdd6f78a892e4bbe3395ccc7f0e8313c69879
MD5 0b5767a2bfab26e607896b10b83f07e0
BLAKE2b-256 57a030caf0fd63d252e8a4bb5babf2875f42bb410e4311d2ab21d1a45b8897c2

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.14-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl:

Publisher: build.yml on nikpau/pytsa

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pytsa_ais-2.3.14-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.14-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 f6fb2cb190c20bd9e68c1d9255af7b3267fc5052306f89b229fc9ba49718111f
MD5 f8e1fc1f84bd583bd29e6f75f0952575
BLAKE2b-256 5f8775a77c10335ac6ddd1897ef7e39e10095bc944561004bd8f48cdfcab3d1a

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.14-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl:

Publisher: build.yml on nikpau/pytsa

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pytsa_ais-2.3.14-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.14-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 028c50b3e2f2d480075d68dd016b99faf66ec1b468f5307a35d7d43ea747c14f
MD5 0683605370abd2b4cf5bca4f87c23d3b
BLAKE2b-256 91e037e5856b461ee913d0d4c68b842d6686dee6a5e3ba492e63d285e05afc6e

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.14-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl:

Publisher: build.yml on nikpau/pytsa

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pytsa_ais-2.3.14-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.14-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b5366198e5a672e86270106318432aa2042c52a437049e57ebda587df653b513
MD5 2876fccdec06cea4c88b49a5ae0906c7
BLAKE2b-256 8f39df641bf86d38d8c124aa27d77399e128e327f19da8e6487338db318fa1d9

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.14-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: build.yml on nikpau/pytsa

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pytsa_ais-2.3.14-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.14-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 3ba22e46ba591cdfe47da0fba774d9738bf549403ddebf05dd575cfc77563d3e
MD5 1002559691f2dd7f6ca4318f9ffe4d48
BLAKE2b-256 ec344601765079f21f49238725929419cd0b739ff35133bd9ccbab8ccd12185d

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.14-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl:

Publisher: build.yml on nikpau/pytsa

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pytsa_ais-2.3.14-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.14-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5d449963d537280e26ef1c46426425f503b13b2032e6cdc9285a188f320597a5
MD5 dfe3257f5c6ce838f473b90e0f00a9a3
BLAKE2b-256 74cab96b9a3d0e135067c42217305878d36fdaa2f7f8be54b7e1757b6a2a569f

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.14-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: build.yml on nikpau/pytsa

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pytsa_ais-2.3.14-cp310-cp310-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.14-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 25e32771cecfd4767d16228290c39a51650a2ab05f99201390ecdb50e67811c5
MD5 b6529272f9db3a83ff2bdd8f8e5f9791
BLAKE2b-256 d085d552ed79434fb5e0b926376579cf714249a22f2679fedcfe0713cb9bf874

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.14-cp310-cp310-macosx_10_12_x86_64.whl:

Publisher: build.yml on nikpau/pytsa

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page