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.15-cp313-none-win_amd64.whl (1.8 MB view details)

Uploaded CPython 3.13 Windows x86-64

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

Uploaded CPython 3.13 Windows x86

pytsa_ais-2.3.15-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.15-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.15-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.15-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.15-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.15-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.15-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.15-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.15-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.15-cp313-cp313-macosx_11_0_arm64.whl (1.9 MB view details)

Uploaded CPython 3.13 macOS 11.0+ ARM64

pytsa_ais-2.3.15-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.15-cp312-none-win_amd64.whl (1.8 MB view details)

Uploaded CPython 3.12 Windows x86-64

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

Uploaded CPython 3.12 Windows x86

pytsa_ais-2.3.15-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.15-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.15-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.15-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.15-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.15-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.15-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.15-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.15-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.15-cp312-cp312-macosx_11_0_arm64.whl (1.9 MB view details)

Uploaded CPython 3.12 macOS 11.0+ ARM64

pytsa_ais-2.3.15-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.15-cp311-none-win_amd64.whl (1.8 MB view details)

Uploaded CPython 3.11 Windows x86-64

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

Uploaded CPython 3.11 Windows x86

pytsa_ais-2.3.15-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.15-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.15-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.15-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.15-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.15-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.15-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.15-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.15-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.15-cp311-cp311-macosx_11_0_arm64.whl (1.9 MB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

pytsa_ais-2.3.15-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.15-cp310-none-win_amd64.whl (1.8 MB view details)

Uploaded CPython 3.10 Windows x86-64

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

Uploaded CPython 3.10 Windows x86

pytsa_ais-2.3.15-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.15-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.15-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.15-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.15-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.15-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.15-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.15-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.15-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.15-cp310-cp310-macosx_11_0_arm64.whl (1.9 MB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

pytsa_ais-2.3.15-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.15-cp313-none-win_amd64.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.15-cp313-none-win_amd64.whl
Algorithm Hash digest
SHA256 180a6982b3d4615c8904f6c65bec387e860b9f01369268192086c8a3ecd6b5ab
MD5 b467f90c18ad727da2dfd61eca310bdc
BLAKE2b-256 1a234a93ba2a0553d76de484257066808dbc12ead6de2389b253eb3cbc0bf6d3

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.15-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.15-cp313-none-win32.whl.

File metadata

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

File hashes

Hashes for pytsa_ais-2.3.15-cp313-none-win32.whl
Algorithm Hash digest
SHA256 027589ccae2834028fc6b569af304e108f3b950d209157c07fa81d0cd56fb8f7
MD5 9e3f597a11b7eadbd3f6486061a11f07
BLAKE2b-256 6a2d0f1b9eea99c9389dbffbbdf08c400f0bc50abf5798b9a585d0d6f01fdb6f

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.15-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.15-cp313-cp313-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.15-cp313-cp313-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 17b612351b62a2e12ebcf38c11e54962d5546d03c7b89d56da70497a39ff811c
MD5 3e7cd43c9030eabecb6b04d39dcc0705
BLAKE2b-256 c529403f94455b6aeb4dbf1ade899faa1b9e121b4c1d7219256a8bf6e866f0c9

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.15-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.15-cp313-cp313-musllinux_1_1_armv7l.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.15-cp313-cp313-musllinux_1_1_armv7l.whl
Algorithm Hash digest
SHA256 5c70861328116784e56eec5aa500a44f349cfbabe9fad322cc6361d0de9091ad
MD5 f10bf6bb823d78791a7eb22f426cca24
BLAKE2b-256 21427e3426759c02560286b3e6d94629b927c38c412b58dfcb790608be4869a3

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.15-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.15-cp313-cp313-musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.15-cp313-cp313-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 71e6bcd4c6cc2e72f6c54b549a52bdb2e6cefc22856b5eaa39945d3e3632e94b
MD5 1c021275f53f34e1ccb4e792ff1535b3
BLAKE2b-256 68452584bd885d6e2e1d38f7d8ae4e9fa3a4a2b0280440beaa083545e18aba58

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.15-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.15-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.15-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c88489eb136693c3ecf7f4df803176f5495ac2ab28548a6d568a9c64440f541c
MD5 c94a71b14c94460aa6fa9f02134d0ba8
BLAKE2b-256 4206fcb8a83e12db77b4c4a7ea7f5f2d1fa06a1dca184f1cc8aee5c9ad185b63

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.15-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.15-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.15-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 7e4ea1d3d022e563849d27620f1fd4903c65d6a15209aae8d3277befb52ef29e
MD5 eb51ac2ba70f0870827085f57c117f73
BLAKE2b-256 6c21e478e281cd9e331c5c6f9c760d4275a9a538f5c8ca19a2e6c3e8da685bde

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.15-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.15-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.15-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 6dd8fa4d244a7af5329603f2d105bb9eb2d8099fbaa09504b3c9d47dbab3c72a
MD5 7b165f8b1ac4e4bcb9968bcbc7be2505
BLAKE2b-256 522e5915097c89b214a57b740451864c8f0ea0f566a773faaa9bfa6fa5db4fe5

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.15-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.15-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.15-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 89597ed04a0fba1fd1ced6410d441a2ed507147a52610db484ed8f039ea6d4f3
MD5 0a65a500c9fd2f7e3d7a156e7424d0da
BLAKE2b-256 2b93ab131432f3426147951042b5f968dc1924cff54990f85fc38d6e83b4afde

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.15-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.15-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.15-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 724831866a501d09204d896093a10eebec64e60c6a77c4221da93d879d596d0b
MD5 9780fd89a7063e2a2711025034a0e3d1
BLAKE2b-256 898f028235b54028fb47c56e4170b66e3a773568a51871ead16b911abad2465f

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.15-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.15-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.15-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 1fa956070cef2415dabd52471d67705cde1748453fa2d6f4dda677b50c426c6f
MD5 34b7865a3e7385f00eb5b145a9fee7bd
BLAKE2b-256 2bd9f952537f22662cde98f038c79307b60447f242d920a39bfdc0043a47d43a

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.15-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.15-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.15-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9a6747132f386858ef666c7b326d2eaf0e67203a0a114002e0ed792e0a189679
MD5 90073d73e4fb741195e18f3b60b7e549
BLAKE2b-256 979419ebe2f06239f13ff4ae70ab7b6f58d9db447004dbbbddc1c215d8cbfbd1

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.15-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.15-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.15-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 9821bceade9c419f89ea7c87e6c4eb0cbc03bc4a88876e6ca6b0978cbe6af83a
MD5 674f8d8844c0b23c5db35a967e7e60cd
BLAKE2b-256 776ee0b948303ea5c0335218f0e9000a5caad312180b1700aadd65c585fc9a92

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.15-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.15-cp312-none-win_amd64.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.15-cp312-none-win_amd64.whl
Algorithm Hash digest
SHA256 cdae5d237fd91041e1f1963326d08866fd83c6bb85291a31e9ecc85b2b15085b
MD5 9a2c9040a7f8f4ac108667779d31854f
BLAKE2b-256 c39c78b4bb9919cde3288d10e44ba45ffe1e67736f47d818d6c3332c6bcb880a

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.15-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.15-cp312-none-win32.whl.

File metadata

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

File hashes

Hashes for pytsa_ais-2.3.15-cp312-none-win32.whl
Algorithm Hash digest
SHA256 c2829573cf52e02061de51a59461d65c3ddb01843f830588fd16b8e23b3e1a18
MD5 0bea0c3673f50a14e0e0dba8cc794883
BLAKE2b-256 820455db111d79ab61c4b08b3ea5858bda47c19b613bfcaa1b8be0765ed00c4f

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.15-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.15-cp312-cp312-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.15-cp312-cp312-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 be5b21afaa7ea16a3502427d29a988cfda77d997c4c1750b3ba1d32e437dc3a5
MD5 4af3d026c3935e23215538a1c525c2ff
BLAKE2b-256 8dbff5090893d462e122f734f1e107935c94e8545a590f1145969e90139535b3

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.15-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.15-cp312-cp312-musllinux_1_1_armv7l.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.15-cp312-cp312-musllinux_1_1_armv7l.whl
Algorithm Hash digest
SHA256 814e0e874592c9c96211dd735f184fde55893bf58984c0de5e3f8009e375d2bd
MD5 7ad4c5115f9a4587be026f431c13cac7
BLAKE2b-256 0e11bd4bc4f36855ea2deb6039f469e64bec2691167712a3d7fbaf07c8b9f275

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.15-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.15-cp312-cp312-musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.15-cp312-cp312-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 d4e9db81f47ed846b87b78a83f8da9e0105b5c875b5c8c14f779b7e2bb084842
MD5 e297fe878f887f3bc3c000b21807aef3
BLAKE2b-256 af257c08e8bac2f4f6e6aec04ec935762e18349f0aa2324afbc9c363052ad3ff

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.15-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.15-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.15-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f723352fdb45a865b5b2ab6dd012c5ea65ecb91324555596edfa6d0456685f15
MD5 bac5026f14619df5a60209abb4cda12f
BLAKE2b-256 7cdcdf04d8cd8e1d810091045ca69b0aa61bdf78fea3e4dd365a7b9862a32c9d

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.15-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.15-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.15-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 e35ac625ca0df03d422d5a87002e8adf01821922496296abbf9897c427def9c1
MD5 1beb3230ab41800f1a1697226e8e0da8
BLAKE2b-256 a79a5e49e23b1f3c05c6448784a58825c4d00b34a5f5ee58b9a5cecf849a8283

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.15-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.15-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.15-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 da735ca0d60bc734d910d662cdff3dcb23bea7faa0577fee015d166396933d18
MD5 9e83f2bc037132f97fc4b336c9fed913
BLAKE2b-256 dd1b53340cff89411d8cd34923353a6ea37d2bb2949a1687172c054801d31dbb

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.15-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.15-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.15-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 419bba6bf983e0434bf0fe8724bb9fc153465f977063417c8ab5eb95f8b73916
MD5 f18fd3c05eb0e0c81061fafbea35c19a
BLAKE2b-256 03d4811a5546b16f6776d4e690195132dbb247a3a59b716d0db9a50303c08289

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.15-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.15-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.15-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 9851140a49fdc93e4d1e1505ece4e2161aa074351c56f0e6bf9b67bc47c1c2eb
MD5 be9a5b3d13bd2168a883515bd731f4c1
BLAKE2b-256 ec938d8f297f1007a4f12c0b7826d101a091313560bf92bbb6a9ffe3baf72802

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.15-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.15-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.15-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 55e5fc57d73513d0cfb78cfaac02c5903e0f994859899e1cfb76b2d8f705ed5f
MD5 e8014b4778be05d84714d1ff96d9d1f5
BLAKE2b-256 154e859cc90b3ed38819edeeef4d69f2e8e5c266b043d659ad04dacda81536ea

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.15-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.15-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.15-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 192394aa8a915bbc0e5208bfa287f209f844c0aa350009bc7c1c9e4d397f31d6
MD5 a966935bb4c428386eee2860f29a15af
BLAKE2b-256 8413776580983c99318d56c1faaaa381e2829147b4c7f7ddaae5b629ff91c17f

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.15-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.15-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.15-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 92bf5896a32df90c0574c5dee68571d9b0b008e891f6b0aa72ea305a5dd09fc9
MD5 15d0cf935c7d9dd9ebb388a7a58f2042
BLAKE2b-256 aae81d2512896d2b5ea7fa2b8a339dd3bcb9ddf631c4e2439cf616152bc55156

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.15-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.15-cp311-none-win_amd64.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.15-cp311-none-win_amd64.whl
Algorithm Hash digest
SHA256 2e4597c650458906b45e5d9567668733a383758b7cb5268118a2f3b130f7d838
MD5 1429284333c545c5c344c5ed6cc64a40
BLAKE2b-256 7621b9b72c08f7a2905b5305047541b43287c3e6c9185a5b06595e2438ba2bb5

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.15-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.15-cp311-none-win32.whl.

File metadata

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

File hashes

Hashes for pytsa_ais-2.3.15-cp311-none-win32.whl
Algorithm Hash digest
SHA256 7c5e5337e1d7d9caf490c1c139adc75d4ae92d5b65dabafe04bbf0ed4ea51f0e
MD5 dfac3b6987870341724a3c57cb91f089
BLAKE2b-256 a58e9342f12ce7c12e95a7ea567781f84cac6ff31238a5048aab88936a8ff2dc

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.15-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.15-cp311-cp311-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.15-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 ad67f2ae408878424503d11f0a914569417bd3fdfbbc94444b6fc1e52600382c
MD5 d10a2c8e2cb205e61ecc03b53660df50
BLAKE2b-256 1d123b77c0689a63b5a09532476f950caf14c0a3d424a57a06bcb09b27cff6b7

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.15-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.15-cp311-cp311-musllinux_1_1_armv7l.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.15-cp311-cp311-musllinux_1_1_armv7l.whl
Algorithm Hash digest
SHA256 554c15362e5495476798a303f896a78e74377e826790461709c97b23066fa3be
MD5 e7002751957547d1c07907ae25de3adc
BLAKE2b-256 5e195ec01f12672fed2bf8486e60fd43ac6b44096e7f6d863042f906975dc69a

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.15-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.15-cp311-cp311-musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.15-cp311-cp311-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 57b12b05cc532f2b28a2fed9f72de09be16984f83dc675773d42478e882bbc71
MD5 5263b400fa90756f2ccd3b3ddef2a494
BLAKE2b-256 774b49981dd11ecf41203fede2eb59879c309dd9506f38bb94097e568411c09f

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.15-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.15-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.15-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0b8fddc7c593b27086dce753905bc6879e1bdffa4de1c4c3c9e105315f983c95
MD5 6e553c413ce6313c071b282be32357d5
BLAKE2b-256 e4b27f927b19a4b3d2591ca6f68e60f04019644ae18de0380274284d3fc5d933

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.15-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.15-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.15-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 9411b6a772092c6293373738aa9668132c5ce5ed99168939685c04f192da32b2
MD5 879ddb207cb9d59c12cde525118ed2fe
BLAKE2b-256 8da6effd9246cf9fdfc6b91f6607bc1b7fcb4b582ebf8a8eacd7f31d03988386

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.15-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.15-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.15-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 f883a6eb38f8e509331d2ce901359e6f452dbf080e09b75e4fccbac85fd765e2
MD5 79add2fa8b42981c543151b42241ee8d
BLAKE2b-256 dfc3f8ab035b027ae4f553a3e1a0c75afac3c573c86f5cef01da0df9f9684be7

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.15-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.15-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.15-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 8068553a48fab625f2b1248c9b4a1badf52005ae9617b9873bc4e03c9da31a47
MD5 968c93be4ff2b8de8ce1bab6ec986729
BLAKE2b-256 ba87240e8b3c7e18718c5ce56629bb1e811566f13bedfae7814de7c9a249abb9

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.15-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.15-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.15-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 3f930fdb216a273808ee54ba263f0a59924a599ca82a7a8ed63701282b067837
MD5 fe626228f3e4b873660da9b6bc254d0f
BLAKE2b-256 eb77914124cda6f34ed90cf8b1f59036836d9484999be241a69e6886c013febf

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.15-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.15-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.15-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 75e8064e025592508a1f3f35fe22764948eb39ce1b2ce18f1f9ab2033d0caf0d
MD5 5214150d2be0aecc40643dd36753f1c3
BLAKE2b-256 f99675288c126a822ccc875e0a7b1ea45d4b7bdd2a5467806c673a33b760f768

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.15-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.15-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.15-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0b2c3c841a1fb51c043ffcbe62a8fbe8e6f486fbe854f7621763b5d07849cfc6
MD5 1839515a2fe8eeb828d20846e9166411
BLAKE2b-256 b674345859d02b963a2f79233f2f53e4e4843442f39f0ddb37da320905230285

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.15-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.15-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.15-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 002d5ec499f790eb1ff98d399464516febeaa47e9b2500f83ce7d590180c8246
MD5 64d05e18d6b4c1fb6147782de15975ef
BLAKE2b-256 5e7bedaafc8b2b2ade384f6d88f32019daaea6eec124f94d99a302a5eacfd1c2

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.15-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.15-cp310-none-win_amd64.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.15-cp310-none-win_amd64.whl
Algorithm Hash digest
SHA256 9df1ef707a62b20047325f840ed85625fc122e7d81b366ce2e1ed37b54307a6e
MD5 03f9a2a38209fd8f0281b0926bfe1283
BLAKE2b-256 fbdc42977184cddfc20875dc6a614a6a1e7682209d26679ed55a975f80dbf31b

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.15-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.15-cp310-none-win32.whl.

File metadata

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

File hashes

Hashes for pytsa_ais-2.3.15-cp310-none-win32.whl
Algorithm Hash digest
SHA256 f7b83f4ed5f966589d01b18067772e23126d434ff8f65259cf61817a907f4355
MD5 3d30e6e5da1f56a8826896db52eb50d9
BLAKE2b-256 4ab9814aaf833a9d1db03232462b6f01fb7a22293fb8578fe4cb6cd003bd360a

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.15-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.15-cp310-cp310-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.15-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 f4bdacb18f0e3ace1b312f4ea85f6889018241e7e6e9f74065d2ed3307f81bc8
MD5 cb0d16ad1c92a00caba1ae13e982b0b1
BLAKE2b-256 56723627042079aa35549ef7a6977b47cd25f73543d4ced2a06082b8ce18a300

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.15-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.15-cp310-cp310-musllinux_1_1_armv7l.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.15-cp310-cp310-musllinux_1_1_armv7l.whl
Algorithm Hash digest
SHA256 d5fe7c046138e3edd8f491115682afaca01999ab7f7909661dc34e91dc397e27
MD5 e93bb2c5c9d4d8856b0d9328d666378a
BLAKE2b-256 156c8a587969f8b244e3841bf96fdc83a08762b586a3d6d4744a81981e866a95

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.15-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.15-cp310-cp310-musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.15-cp310-cp310-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 9021f80e5e3127d7ecf057d7b2a4f3009dc03cb1de50d6764e6fa20e70532b5e
MD5 690169aab109aba883ec66e3ef4f6175
BLAKE2b-256 fb2f8c431140d94fd73a09a40316b1aa7c492578935741b229ed27c6e946a021

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.15-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.15-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.15-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 542539ca0f2814cf62e9f416e9cc6696746dbc59724aa1a0f2938d00b869b886
MD5 e76d06b6521e796f02a12250398a1e6d
BLAKE2b-256 f75c7e3cfc9cac72d362ddd6e0263706f0c62aa4f8930ad3c9eaa7bfd7fcb202

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.15-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.15-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.15-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 e1f12965ba917b269d54315c83efb2b059c11dfed0aa08b7a98d0ab0104502d3
MD5 ebe5707c7106710d751c1f616b4e7d20
BLAKE2b-256 085c1770d38e88e235c48af5a653fe7b44cddeacc14856879522b236f58e6195

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.15-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.15-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.15-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 c5b619b576c02a02d44312e07bcc6a32c74c051ed80d9acda161e3839fbb314f
MD5 ae0b707c086179b77acfc20fbb153a20
BLAKE2b-256 34053c42296c1d144264977412725f005c2eee907a2f6497409574433712eed1

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.15-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.15-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.15-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 79f04acb4e6528f4a8c788865cd6e36b874ea7e89b4063726459b7391971233a
MD5 821038833220887d72ce1c2560cd088f
BLAKE2b-256 bffbe3d449b5472848471720d728d1eed1549ecaa77c76f4a7583d20b62df92d

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.15-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.15-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.15-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 23b1e3331773cd7bfa3eab996462ff3233dcbfb686aee8240827908381e65390
MD5 721a37f96e0a8d6dc0d919c2b6523f8c
BLAKE2b-256 712698fc33728d3353e77ac20a8c78f38abfb3e6fdcb14999d512e45593fafe4

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.15-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.15-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.15-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 3691e3e2cc388c08b2a7707770baccd2b45f73362cee8a202b51877d69bb7aa0
MD5 2297e8e67a5ece904d9d8fbb2daa92b0
BLAKE2b-256 ec5c043e1ff41579573cfd58b550cd6b36ffce3099d23ec0d4fdbb90c0e3a3d6

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.15-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.15-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.15-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 00b84dfe58351b8b73ed199b094bc9e3936cba8ee93e4ab73717a1489e33bd8a
MD5 d5df62ea7e9b35ad105dd443452e7880
BLAKE2b-256 4add8e2cc0887a38888d136a177789bd90855209206d09ae144a88256425d495

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.15-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.15-cp310-cp310-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for pytsa_ais-2.3.15-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 7f17c45f285d2c28a89a020113219bee03b5fc2e046cb09abddfee95aed871b8
MD5 7c5874575aa465e02bf1d81757db7be5
BLAKE2b-256 b54f4a11708d1add79a704bc358fbf701b9b2d1b5ab35b6665c779e46ff54d7c

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytsa_ais-2.3.15-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