Skip to main content

A extend project of UQPyL, which provides develop and GUI versions.

Project description

SWAT-UQ: Uncertainty Quantification for SWAT

GitHub last commit Static Badge Static Badge

SWAT-UQ is an extend project of UQPyL - a comprehensive platform for uncertainty analysis and parameter optimization. This project aims to provide full integration of UQPyL and Soil and Water Assessment Tool (SWAT), enabling users to easily perform sensitivity analysis, single-objective optimization, and multi-objective optimization and so on.

👉中文文档

There are two available versions of SWAT-UQ, tailored to meet different user needs:

  • SWAT-UQ-DEV (Develop Version) - Designed for advanced users who require high flexibility and customization in building and managing their modeling workflows.
  • SWAT-UQ-GUI (GUI Version) - Offers an intuitive graphical interface for streamlined operation, ideal for users seeking minimal coding involvement.

With SWAT-UQ, users can seamlessly incorporate powerful uncertainty quantification and optimization capabilities into their SWAT-based hydrological modeling projects.

Content

Develop Version of SWAT-UQ

SWAT-UQ-DEV is a Python package designed for script-based environments. It designs a Python class named SWAT_UQ, which inherits from Problem class of UQPyL. By instantiating SWAT_UQ class, users can directly access all methods and algorithms offered by UQPyL. In addition, SWAT_UQ contains a suite of built-in functions to streamline and accelerate the process of building and solving problems (e.g., model calibration, best management practices).

This version is particularly suited for users who wish to customize their workflows, integrate with UQPyL, or other Python tools.

✨ Key Features

  1. Parallel Execution: Both data I/O operations within project folder and SWAT model simulations support parallelization. ( 🎉 Benchmark tests on a 40-core server demonstrate that the current code version can stably run up to 80 SWAT instances concurrently.)

  2. File Control: For model calibration tasks — such as streamflow and water quality, users only need to prepare a set of .txt files to complete the entire setup process.

  3. Workflow Integration: With the support of UQPyL, users can efficiently carry out the complete modelling-based workflows: sensitivity analysis -> optimization -> back-substitution.

🍭 Quick Start

Here, we provide a step-by-step guide to solving SWAT-based problems with SWAT-UQ-DEV.

To get started, instantiate the SWAT-UQ class, which inherits from the Problem class in UQPyL. This will enable all accesses to methods and algorithms available in UQPyL (see the UQPyL Documentation).

Some preparatory works are required:

Step 1: Obtain a SWAT project folder (named SWAT Project Folder for convenience).

Step 2: Create separate folder as Work Folder to store control files for setting up your problems, as well as temporary files used when running the SWAT model in parallel.

Step 3: In the Work Folder, create a parameter file encoded in UTF-8. This file would show the details of the parameters you want to analyze or optimize, as shown below:

File name: paras.par

💡 Noted: The file name is not restricted, but it is recommended to use the .par extension for consistency with the GUI version. In this file, all elements must be separated by spaces or tabs.

Name Mode Min Max Scope
CN2 r -0.4 0.2 all
GW_DELAY v 30.0 450.0 all
ALPHA_BF v 0.0 1.0 all
GWQMN v 0.0 500.0 all
... 
SMFMN v 0.0 20.0 all
TIMP v 0.01 1.0 all
SURLAG v 0.05 24.0 all

The first line should be kept as a hint for users.

Following line of the parameter file should be structured by Name, Mode, Min, Max and Scope:

  • Name: Any parameter occurred in .gw, .hru, .mgt, .sol, .rte, .sub, .sep, .swq files can be wrote. The only requirement is that the parameter names used here must exactly match those in the SWAT project file. (Totally support 308 parameters)
  • Mode: The title 'Mode' means assigning mode of parameters, which is represented by a single character, e.g., r, v, a.
    • where val is the value in this parameter file, and originVal is the origin value of SWAT project files.
    • r denotes relative assignment. The true value would be calculated by $(1+val)*originVal$.
    • v denotes absolute assignment, directly use val.
    • a denotes for adding assignment, the true value is calculated by $originVal+val$.
  • Min: The title 'Min' is the lower bound of the parameter.
  • Max: The title 'Max' is the upper bound of the parameter.
  • Scope: The title 'Scope' means the target scope of the parameter. By default, it sets to all - the parameter would be modified globally. Alternatively, you can specify a particular BSN ID or a combination of SUB ID and HRU IDs to apply the parameter selectively. For example:
CN2 r -0.4 0.2 all # Default Scope
CN2 r -0.4 0.2 3(1,2,3,4,5,6,7,8,9) 4(1,2,3,4) 5 # Appoint Scope

The format follows either:

  • SUB ID - apply the parameter to all HRUs within the specified basin
  • SUB ID(HRU ID_1, HRU ID_2, ..., HRU ID_N) - apply the parameter to specific HRUs within the given basin

Different basin should be separated by spaces or tabs.

Step 4: In the Work Folder, create an evaluation file encoded UTF-8, used to construct objective or constraint functions using observed data.

File Name: eval.obj

💡 Noted: It is also recommended to use the .obj extension for consistency with the GUI version.

SER_1 : ID of series data
OBJ_1 : ID of objective function
WGT_1.0 : Weight of series combination
RCH_23 : ID of RCH, or SUB, or HRU
COL_6 : Extract Variable. The 'NUM' is differences with *.rch, *.sub, *.hru.
FUNC_1 : Func Type ( 1 - NSE, 2 - RMSE, 3 - PCC, 4 - Pbias, 5 - KGE, 6 - Mean, 7 - Sum, 8 - Max, 9 - Min)

1 2012_1 2.1
2 2012_2 3.2
3 2012_3 3.5
4 2012_4 6.7
5 2012_5 14.55
6 2012_6 21.54
...
12 2012_12 22.44

The evaluation file can consists of multiple data series, which may correspond to different locations, output variable, or time periods.

In this example, just one data series is shown.

Each series consists of two parts: a. Head Definition; b. Data Section.

Head Definition: (Following label ID or NUM should be replaced by a number)

  • SER_ID: The ID should be an unique label for different data series.
  • OBJ_ID or CON_ID: The OBJ or CON determine the type of the data series. And this ID denotes the unique label of objective or constraint functions. 💡 Noted: SWAT-UQ-DEV support the multiple series set the same OBJ ID or CON ID
  • WGT_NUM: The NUM denotes the linear weight for combing series obtaining the same OBJ ID or CON ID.
  • RCH_ID, SUB_ID or HRU_ID: The RCH, SUB or HRU determine the type of output file loaded. The ID should be consistent with the SWAT project (which RCH, SUB, HRU) and can be set according to your requirements.
  • VAR_NUM: The NUM specifies which data columns to extract from the output.rch, output.hru or output.sub file (Please see following table for checking valid values).
  • FUNC_NUM: The NUM defines the objective function type to compare observed and simulated data. (Valid values: 1 - NSE, 2 - RMSE, 3 - PCC, 4 - Pbias, 5 - KGE, 6 - Mean, 7 - Sum, 8 - Max, 9 - Min)

The valid values of VAR_NUM (extract variable) in output.rch, output.hru, output.sub can be:

File Name Valid Value
output.rch 1-FLOW_IN, 2-FLOW_OUT, 3-EVAP, 4-TLOSS, 5-SED_IN, 6-SED_OUT, 8-ORGN_IN, 9-OGRN_OUT, 10-ORGP_IN, 11-ORGP_OUT, 12-NO3_IN, 13-NO3_OUT, 14-NH4-IN, 15-NH4-OUT, 16-NO2_IN, 17-NO2_OUT, 18-MINP_IN, 19-MINP_OUT, 20-CHLA_IN, 21-CHLA_OUT, 22-CBOD_IN, 23-CBOD_OUT ... 38-BACTP_OUT, 39-BACTLP_OUT... 43-TOT_N, 44-TOT_P
output.sub 1-PRECIP, 2-SNOMELT, 3-PET, 4-ET, 5-SW, 6-PERC, 7-SURQ, 8-GW_Q, 9-WYLD, 10-SYLD, 11-ORGN, 12-ORGP, 13-NSURQ, 14-SOLP, 15-SEDP
output.hru 1-PRECIP, 2-SNOFALL, 3-SNOMELT, 4-IRR, 5-PET, 6-ET, 7-SW_INIT, 8-SW_END, 9-PERA, 10-GW_RCHG, 11-DA_RCHC, 12-REVAP ... 49-NUP, 50-PUP ...67-BACTP, 68-BACTLP

💡 Noted: The numbers above are taken from the SWAT Manual. However, you can actually determine the order of the target variable by checking the output file.

Data Section is structured by NUM, YEAR_INDEX, DATA. And there is no need for continuous:

  • NUM: Not used in SWAT-UQ-DEV, only for data integrity checking.
  • YEAR_INDEX: The value of YEAR means the year index for the data. The value of INDEX is the day number when SWAT outputs daily data, otherwise the month number, determined by IPRINT in file.cio of SWAT project.
  • DATA: The type of data can be int or float.

Step 5: Build your problem in Python script environment.

# First import SWAT_UQ class
from swatuq import SWAT_UQ

# Second define requirement variables:

projectPath = "E://swatProjectPath"  # your SWAT Project Path
workPath = "E://workPath" # your Work Path
exeName = "swat2012.exe" # the name of swat.exe you want to run
paraFileName = "paras.par" # the parameter file you prepared
evalFileName = "eval.obj" # the evaluation file you prepared

problem = SWAT_UQ(
   projectPath = projectPath, # set projectPath
   workPath = workPath, # set workPath
   swatExeName = exeName # set swatExeName
   paraFileName = paraFileName, # set paraFileName
   evalFileName = evalFileName, # set evalFileName
   verboseFlag = True, # enable verboseFlag to check if setup is configured properly.
   numParallel = 2 # set the number of parallels
)

# The SWAT-related Problem is completed. You can enjoy all methods and algorithms of UQPyL.

#For example:
from UQPyL.optimization.single_objective import GA

ga = GA()
ga.run(problem = problem)

Step 6: apply optimal parameters to project folder

# X should be a list or a NumPy 1D or 2D array
problem.apply_parameter(X, replace=False)  # Applies parameters X to workOriginPath without modifying the original project files
problem.apply_parameter(X, replace=True)   # Applies parameters X directly to the original project directory

GUI Version of SWAT-UQ

💡 Noted: SWAT-UQ-GUI is still in demo stage (Now, we advise to use SWAT-UQ-DEV). Feel free to give it a try — the full version is on the way!

SWAT-UQ-GUI is designed for parameter uncertainty quantification (UQ) of the SWAT model. Its core functionalities are built upon UQPyL, our public released Python package for UQ. A key advantage of this platform is that users do not need to worry about coding. It seamlessly automates complete workflow from sensitivity analysis to parameter optimization, result checking, finally data visualization.

Main GUI Table List

Figure 1. Get Start Card

SWAT-UQ-GUI consists of three modules corresponding to preparation, execution, and post-processing. As Figure 1 shows, preparation involves Parameter Setting, Objective Define; Execution includes Sensibility Analysis, Problem Optimization, Result Validation & Apply; Post-processing provide interface for histogram (Visualization A) and point-line figure (Visualization B).

✨ Key Features

End-to-end visualization: SWAT-UQ-GUI supports fully visualized operations across the entire workflow — from problem definition and sensitivity analysis to optimization and final result validation.

Modular & Extensible Architecture: SWAT-UQ-GUI adopts a modular structure that's easy to extend — new methods and tools can be integrated without disrupting existing workflows.

🍭 Quick Start

Here, we provide a Quick Start. In future plans, we will provide detailed documentation and videos.

Please choose the latest release version of SWAT-UQ.

Demo Version has been released: SWAT-UQ

Step1: On the Get Started interface, click the New Project card to create a project or the Open Project card to open an existing one. You can also select the Example card for reference cases or the Help card for assistance.

New Widget Open Widget

Figure 2. New Project Card and Open Project Card

For the New Project Card (left picture of Figure 2), users need to provide the following information: the UQ Project name, the UQ Project path, and the SWAT Project path. After these inputs are provided, the program will verify the validity of the SWAT project files. If the verification is successful, other modules will be activated. Once the UQ Project is created, a project file named *.prj (where * represents the UQ Project name set by the user) will be saved in the specified UQ Project path.

For the Open Project Card (right picture of Figure 2), users should select the folder that contains *.prj files. SWAT-UQ will then check the validity of the project file before proceeding.

Step2: On the Parameter Setting and Objective Definition, the parameter file (.par) and the objective file (.obj) should be created. These files are crucial as they specify which parameters will be modified and what objectives will be evaluated by the program.

Main GUI Table List

Figure 3. Parameter Setting Card and Figure 4. Objective Define Card

To be specific, as shown in Figure 3, the Parameter Setting Card enables users to define the parameters they wish to tune. There are two ways to add parameters to the information table: either by importing them from an existing file or by clicking the Add button to open the Parameter Selection widget. In this table, all selectable parameters are organized by the suffix of the SWAT project files. Additionally, the search bar provides a convenient way to locate specific parameters quickly.

Parameter Selection

Figure 4. Parameter Setting Table

After adding parameters, users can set the tuning mode, lower and upper bounds, and specify tuning files (default: all) for each parameter (Figure 3 shows). Finally, these settings should be saved to the UQ project folder by clicking "Saving Current Parameter" button.

There are also two ways to define the objective function: by importing from existing files or by user definition. For user definition, you should click "Add" button.

Objective Define

Figure 5. Objective Define Table

As shown in Figure 5, users need to accurately fill in the objective ID, series ID, objective type, variable type, weight, and other relevant information. It is important to note that both the series ID and objective ID can be repeated, allowing for combinations of multiple series or weighted combinations of series. For more details, please refer to the comprehensive documentation.

After defining objectives, you can save them to the objective file. It is also allowed to define multiple objective functions within a single file.

Step3: Perform sensitivity analysis or parameter optimization as needed.

Using Sensitivity Analysis as an example, as shown in the left image of Figure 6, users should first select the parameter file and objective file. Next, they choose the desired sensitivity analysis method and sampling technique. Users can then configure additional settings as required, fine-tuning the hyper-parameters to best meet project needs before proceeding. SWAT-UQ thoughtfully displays the number of parameters and the total sample size to assist users in making informed decisions.

Once all initial settings are all ready, click the "Next" button to proceed to the simulation and analysis process. The right image of Figure 6 displays the settings of simulation, including the selection of SWAT executable file, parallel numbers and problem name. Finally, click the "Initialize," "Sampling," and "Simulation" buttons in sequence, and wait for simulation completing. SWAT-UQ can display the simulation progress in real-time, and users can also pause it to reconfigure settings. It would save the analysis result into UQ project folder (./Result/data/). The result file would be used to check or draw visualization picture.

SA_Setup SA_Simulation

Figure 6. Sensibility Analysis Interface

For parameter optimization, users should still select parameter file and objective file at first. When users check more than two objectives, the multi-objective optimization would be activated; conversely, if only one objective is selected, single-objective optimization is used. After fine-tuning hyper-parameters, the optimization process would be started, like sensibility analysis. SWAT-UQ can display the optimization progress in real-time, along with the optimal parameter values for each iteration.

OP_Setup OP_Simulation

Figure 7. Parameter Optimization Interface

Here, we list the available sensibility analysis method and optimization method.

Sensibility Analysis:

  • Sobol'
  • Delta Test (DT) #TODO
  • Extended Fourier Amplitude Sensitivity Test (eFAST)
  • Random Balance Designs - Fourier Amplitude Sensitivity Test (RBD-FAST)
  • Multivariate Adaptive Regression Splines-Sensitivity Analysis (MARS-SA) #TODO
  • Morris
  • Regional Sensitivity Analysis (RSA)

Optimization Algorithm: (* indicates solving computational expensive optimization problem)

  • Single Objective Optimization: SCE-UA, ML-SCE-UA, GA, CSA, PSO, DE, ABC, ASMO* (#TODO), EGO* (#TODO)
  • Multi-Objective Optimization: MOEA/D, NSGA-II, RVEA, MOASMO* (#TODO)

Step 4: Result Validation and Apply. On Result Validation & Apply interface, SWAT-UQ allows users to simulate a specific set of parameters individually and extract the desired time series data, or apply the optimal parameters directly to the SWAT project files. This parameter set can be user-defined or sourced from completed optimization result files.

OP_Setup

Figure 8. Result Validation Interface

Step 5: Result Visualization. The current SWAT-UQ provides two types of plot pictures: a bar chart for sensitivity analysis (Visualization A Interface) and an iteration convergence plot for parameter optimization (Visualization B Interface). Of course, additional types of plots will be continuously added in future versions. Figures 9 and 10 shows the visualization pictures from two interfaces.

SA_Result

Figure 9. Sensibility Analysis Visualization

OP_Result

Figure 10. Optimization Visualization

Specifically, On the Visualization A and Visualization B, user can select the result file. SWAT-UQ would generates initial visualizations. Users can click the "Config" button to open the settings panel and tune various parameters of the plot based on the preset values, as Figure 11 indicates.

Visualization_A Visualization_B

Figure 11. Visualization Interface

This concludes the Quick Start section for SWAT-UQ. For more advanced operations, please refer to the documentation.

🔥 Call for Contributions

We welcome contributions to expand our library with more sophisticated UQ methods, optimization algorithms and engineering problems.


📧 Contact

For any inquiries or contributions, please contact:

wmtSky
Email: wmtsmasky@gmail.com(Priority), wmtsky@hhu.edu.cn


This project is licensed under the MIT License - see the LICENSE file for details.

Project details


Download files

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

Source Distribution

swatuq-1.0.3.tar.gz (90.5 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

swatuq-1.0.3-cp312-cp312-win_amd64.whl (225.0 kB view details)

Uploaded CPython 3.12Windows x86-64

swatuq-1.0.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.3 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

swatuq-1.0.3-cp311-cp311-win_amd64.whl (224.6 kB view details)

Uploaded CPython 3.11Windows x86-64

swatuq-1.0.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.3 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

swatuq-1.0.3-cp310-cp310-win_amd64.whl (224.0 kB view details)

Uploaded CPython 3.10Windows x86-64

swatuq-1.0.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.3 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

swatuq-1.0.3-cp39-cp39-win_amd64.whl (223.4 kB view details)

Uploaded CPython 3.9Windows x86-64

swatuq-1.0.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.3 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

swatuq-1.0.3-cp38-cp38-win_amd64.whl (224.0 kB view details)

Uploaded CPython 3.8Windows x86-64

swatuq-1.0.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.3 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

swatuq-1.0.3-cp37-cp37m-win_amd64.whl (224.1 kB view details)

Uploaded CPython 3.7mWindows x86-64

swatuq-1.0.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.3 MB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ x86-64

swatuq-1.0.3-cp36-cp36m-win_amd64.whl (220.6 kB view details)

Uploaded CPython 3.6mWindows x86-64

swatuq-1.0.3-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.3 MB view details)

Uploaded CPython 3.6mmanylinux: glibc 2.17+ x86-64

File details

Details for the file swatuq-1.0.3.tar.gz.

File metadata

  • Download URL: swatuq-1.0.3.tar.gz
  • Upload date:
  • Size: 90.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for swatuq-1.0.3.tar.gz
Algorithm Hash digest
SHA256 f4e6ff9d6c950a3ea785f4637af2bd5ff98c1f09b829c92728d63e4f3e436d21
MD5 7bd0e951dcead7699f0ccc9e5dbf6ad0
BLAKE2b-256 58bd87039c7b1760bb2556f36c140063e81424f13e4e843253daf3acb954de77

See more details on using hashes here.

File details

Details for the file swatuq-1.0.3-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: swatuq-1.0.3-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 225.0 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for swatuq-1.0.3-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 e717948bcda925ec35a1907cfdf5f5c1352f151a85ce10a3494d865531aa4846
MD5 7f0ff98080ff11c3f316104f07872f0e
BLAKE2b-256 7497b582acb931d821f57e5679647589be04dd961ac75f898e2e513da6702f36

See more details on using hashes here.

File details

Details for the file swatuq-1.0.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for swatuq-1.0.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 794c44a85762d9f412aab2348013d6eb982a3116c3fc54ef377b799a66052171
MD5 48de1f78698512e9d0a860a180238ee2
BLAKE2b-256 01aaedd0444ae2ef02dfb79d8e7aaa829f4a96c4b5a964f8aa6ccfa7c64393a3

See more details on using hashes here.

File details

Details for the file swatuq-1.0.3-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: swatuq-1.0.3-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 224.6 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for swatuq-1.0.3-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 6ae146cc73c8e297dcb5c549445c7129f6f37e08b28dfd9daeac63075239c366
MD5 cb31905a9de806851baa0dbfe098b46c
BLAKE2b-256 dce941c83b8847ba7bac9730b642eeb1cc7e2b19b3b03d03b64a5f7937d7837a

See more details on using hashes here.

File details

Details for the file swatuq-1.0.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for swatuq-1.0.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2aa611f4efd9dfc16834179296f0b3a867b3184421a3f9d92023a2e1a18598b8
MD5 745884354ea4fb9b5bee45877d2a4873
BLAKE2b-256 24aa86aa5c8166a2eb03dfae172932355128097e43c4afb3a0b1c00447ccd989

See more details on using hashes here.

File details

Details for the file swatuq-1.0.3-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: swatuq-1.0.3-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 224.0 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for swatuq-1.0.3-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 181e7e7d7171367e737c332439d9fd4b4fa419a746f7eb31bd6b8b8a7c575a1b
MD5 ed7b5fd7c0f37b2a24b897e760e7c42c
BLAKE2b-256 42ac448073018faa56f8ba7ead7b79923176d6185d80a9d124ba1771e8f89255

See more details on using hashes here.

File details

Details for the file swatuq-1.0.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for swatuq-1.0.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ac202d7dccda9c45480887584a53714b17b38dda57ac627a92cb0b0081cda3f5
MD5 86b5251638fe9ffefd918c6c644ba7ee
BLAKE2b-256 bf33bee5434ab1b1869cf1ac8873d82f3c4fd1fc38065bc6b5523d56f757eb05

See more details on using hashes here.

File details

Details for the file swatuq-1.0.3-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: swatuq-1.0.3-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 223.4 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for swatuq-1.0.3-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 b18d726aecd615eb5d8559fb1cbbd7988d8a5c6ad02bb4c762daa1075e2b7fa8
MD5 6ec3f7e27c4110dbe737a772d1798f4d
BLAKE2b-256 3943e5312da0bd8a759968bd150916309a4c13e6a815b97b8fdb57b865d65d1e

See more details on using hashes here.

File details

Details for the file swatuq-1.0.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for swatuq-1.0.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e97468e35ec9ea7686adc996c4f271378352dc214016713cbac487ee326db198
MD5 a45ae64188c6eb4f27c0337827b2d25c
BLAKE2b-256 468c775cc1257151d4d66c74228817f06d9630cf0d1be7a2bd8b6bd40cd29f6b

See more details on using hashes here.

File details

Details for the file swatuq-1.0.3-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: swatuq-1.0.3-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 224.0 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for swatuq-1.0.3-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 4767d8fcedc82aa56e0ea899a1001e167a7e25fd8c225dc37fa41ea519004716
MD5 1f41e5023d86878e9be1068c44689415
BLAKE2b-256 d930e0bfbb58ddb97150faa1a9251cc3d30444f910402640bab3ab3f5c0daac7

See more details on using hashes here.

File details

Details for the file swatuq-1.0.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for swatuq-1.0.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3e7850004a31b29ea7e777423da066505a7028132c934ae7a20bf78119da41a9
MD5 1b7969a4cd83d2428e19e1c48c16dc54
BLAKE2b-256 639913124cea1854e6b428ac0b14fc30f3df464e0995aa76b2d28f46df8afe26

See more details on using hashes here.

File details

Details for the file swatuq-1.0.3-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: swatuq-1.0.3-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 224.1 kB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for swatuq-1.0.3-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 db86a45eca9bf974a5972a2c924e4c922d4bdba50f5cd493623aa7e53a1280f4
MD5 491f62a15fb065f74b9ec05d834bd4df
BLAKE2b-256 ee25460a6a41f19b38d33f73398b912268cc18d2228e84bf66ca6296a119aeb7

See more details on using hashes here.

File details

Details for the file swatuq-1.0.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for swatuq-1.0.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e4c08c045c498c4a45d2b8f6720b43c2645427773f89df114bdfc69cef57f1f4
MD5 211aae260030fbb48b5533e11cdc16ab
BLAKE2b-256 ac1e2cc803f7e6be93e08354496fd11db8ceff07cf810d578e1a480d1d1d1f16

See more details on using hashes here.

File details

Details for the file swatuq-1.0.3-cp36-cp36m-win_amd64.whl.

File metadata

  • Download URL: swatuq-1.0.3-cp36-cp36m-win_amd64.whl
  • Upload date:
  • Size: 220.6 kB
  • Tags: CPython 3.6m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for swatuq-1.0.3-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 de89fa9fd4d9eb6c9d29ad48e791bb170070a8d8cadf5ccbe0abe3229e96876a
MD5 20c58ea229928a16a8ebfff771448179
BLAKE2b-256 e219a75cfeb9bc6a8d4f49706cf8cd1213aa9bbdac1f2551a22296ca0372d4f2

See more details on using hashes here.

File details

Details for the file swatuq-1.0.3-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for swatuq-1.0.3-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c3ed890de32e085964a0256638f22b7ea26eac988211530240c9bb7f58d9502f
MD5 18fcfad91073e081ea820b03a3b3c7c9
BLAKE2b-256 cf721d49a207edf7f7fb8fe6ddab233f5cddf37338e9cc6eca9f0e59e2c98102

See more details on using hashes here.

Supported by

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