Skip to main content

pyfdm

Python 3 package with Fuzzy Decision Making (PyFDM) methods based on Triangular Fuzzy Numbers (TFN).

Version 1.2.0 adds 6 new MCDA methods, 6 subjective weighting methods, an expert-data collection and export module, group aggregation, step-by-step intermediate result inspection, and a standalone ranking utility — on top of a refactored, more robust core architecture. See What's new in 1.2.0 below.


Table of contents


Installation

The package can be installed from PyPI with pip:

pip install pyfdm

Excel-based features (FuzzyExporter.to_excel, StepLogger(output='excel')) require the optional openpyxl dependency. Install it together with the package using the excel extra:

pip install pyfdm[excel]

or separately:

pip install openpyxl

Local development setup

To work on the library itself (contribute new methods, fix bugs, run the test suite against your changes), clone the repository and install it in editable mode.

1. Clone the repository

git clone https://github.com/jwieckowski/pyfdm.git
cd pyfdm

2. Create a virtual environment (recommended)

python3 -m venv .venv
source .venv/bin/activate        # Linux / macOS
.venv\Scripts\activate           # Windows

3. Install in editable mode with development dependencies

pip install -e ".[dev]"

This installs the package itself in editable mode (so source edits take effect immediately without reinstalling), plus pytest and openpyxl for running the full test suite, including Excel-export tests.

If you only need the core runtime dependencies without the dev extras:

pip install -e .

4. Verify the installation

python -c "import pyfdm; print(pyfdm.__file__)"

This should print a path inside your local repository clone, confirming the editable install is active.


Testing

The test suite uses pytest and covers the core MCDA methods, validators, weighting methods, the expert/export module, group aggregation, sensitivity analysis, the step-by-step logger, and the standalone ranking utility.

Install test dependencies (if not already installed via pip install -e ".[dev]"):

pip install pytest openpyxl

Run the full suite from the repository root:

pytest tests

Run a specific test file:

pytest tests/test_methods.py -v
pytest tests/test_step_logger.py -v
pytest tests/test_ranking.py -v

Run with a short traceback (useful while developing):

pytest tests -v --tb=short

All tests are expected to pass with zero DeprecationWarnings on a clean checkout.


What's new in 1.2.0

Architecture

  • BaseFuzzyMethod — a shared abstract base class for all MCDA methods (pyfdm.methods.BaseFuzzyMethod). Eliminates duplicated rank() logic across 21 method classes and gives every method a consistent __repr__.
  • StepLogger class (pyfdm.step_logger.StepLogger): captures every intermediate matrix and vector computed by an MCDA method or subjective weighting method. Activated by passing a StepLogger instance as logger= in any method's __init__. Supports console tables, JSON, CSV, and Excel output, individually or combined.
  • intermediate_results now are included in both fuzzy MCDA methods and fuzzy subjective weighting methods. Can be used to verify and check partial results from the calculation process.
  • Extended Validator — decision matrices, weights, and criteria types are now validated for shape, non-negativity, l <= m <= u TFN consistency, and absence of NaN/Inf, with descriptive error messages.
  • Fixed validate_types bug — matrices where all criteria share the same type (all-profit or all-cost) are no longer incorrectly rejected.

New MCDA methods (6)

fAROMAN, fERVD, fMARCOS, fPIV, fRAFSI, fRIM — see the methods table below for details and references.

New subjective weighting methods (6)

fAHP, fBWM, fFUCOM, fLMAW, fRANCOM, fSWARA, available under pyfdm.weights.subjective. These complement the existing objective weighting methods (equal_weights, shannon_entropy_weights, standard_deviation_weights, variance_weights), which remain available from pyfdm.weights for backwards compatibility and are now also organised under pyfdm.weights.objective.

Expert data collection and export

pyfdm.expert.ExpertCollector collects integer ratings from multiple experts using a configurable linguistic scale (SCALE_1_5, SCALE_1_7, SCALE_1_9, or a custom scale) and converts them to TFN decision matrices. pyfdm.expert.FuzzyExporter exports collected data to CSV, JSON, or Excel.

Group aggregation

pyfdm.group.aggregate() combines TFN matrices from multiple experts using arithmetic mean, geometric mean, weighted average, or OWA (Ordered Weighted Average).

Intermediate-result inspection (logger)

Every MCDA method and subjective weighting method now accepts a logger= keyword argument in __init__. Pass a pyfdm.step_logger.StepLogger instance to capture every intermediate matrix and vector the method computes (normalized matrix, weighted matrix, distances, etc.) and render it as a console table, JSON file, CSV file, or Excel workbook — or any combination. See the usage example below.

Standalone ranking utility

pyfdm.utils.rank_alternatives() computes a ranking directly from any 1-D array of scores, independent of running an MCDA method, with five tie-breaking strategies (average, min, max, dense, ordinal) and full input validation. Useful for ranking externally computed scores (e.g. expert ratings, model outputs).


Modules and functionalities

Fuzzy MCDA methods

Abbreviation Full name Reference
fARAS fuzzy Additive Ratio ASsessment [1]
fAROMAN fuzzy Alternative Ranking Order Method Accounting for two-step Normalization [33]
fCOCOSO fuzzy Combined Compromise Solution [32]
fCODAS fuzzy COmbinative Distance-based ASsessment [2]
fCOPRAS fuzzy COmplex PRoportional ASsessment [3]
fEDAS fuzzy Evaluation based on Distance from Average Solution [4]
fERVD fuzzy Election based on Relative Value Distances [34]
fMABAC fuzzy Multi-Attributive Border Approximation area Comparison [5]
fMAIRCA fuzzy MultiAttributive Ideal-Real Comparative Analysis [6]
fMARCOS fuzzy Measurement of Alternatives and Ranking according to Compromise Solution [35]
fMOORA fuzzy Multi-Objective Optimization Method by Ratio Analysis [7]
fOCRA fuzzy Operational Competitiveness Ratings [8]
fPIV fuzzy Proximity Indexed Value [36]
fRAFSI fuzzy Ranking of Alternatives through Functional mapping of criterion Sub-Intervals into a Single Interval [37]
fRIM fuzzy Reference Ideal Method [38]
fSPOTIS fuzzy Stable Preference Ordering Towards Ideal Solution [25]
fTOPSIS fuzzy Technique for the Order of Prioritisation by Similarity to Ideal Solution [9]
fVIKOR fuzzy VIseKriterijumska Optimizacija I Kompromisno Resenje [10]
fWASPAS fuzzy Weighted Aggregated Sum Product Assessment [26]
fWPM fuzzy Weighted Product Model [27]
fWSM fuzzy Weighted Sum Model [27]

Weighting methods — objective

Name Reference
Equal weights [11]
Shannon entropy weights [12]
Standard deviation weights [13]
Variance weights [14]

Weighting methods — subjective

Abbreviation Full name Reference
fAHP fuzzy Analytic Hierarchy Process [39]
fBWM fuzzy Best-Worst Method [40]
fFUCOM fuzzy Full Consistency Method [41]
fLMAW fuzzy Logarithm Methodology of Additive Weights [42]
fRANCOM fuzzy RANking COMparison [43]
fSWARA fuzzy Step-wise Weight Assessment Ratio Analysis. [44]

Normalization methods

Name Reference
COCOSO Normalization [32]
Linear Normalization [15]
Max Normalization [2]
Min-Max Normalization [5]
SAW Normalization [3], [24]
Sum Normalization [1]
Sqrt Normalization [31]
Vector Normalization [7]
WASPAS Normalization [26]

Defuzzification methods

Name Reference
Bisector defuzzification [29]
Graded mean average defuzzification [4]
Height defuzzification [29]
Largest of Maximum defuzzification [29]
Mean defuzzification [16] [17]
Mean area defuzzification [15]
Smallest of Maximum defuzzification [29]
Weighted mean defuzzification [10]

Distance measures

Name Reference
Canberra distance [30]
Chebyshev distance [30]
Euclidean distance [18]
Hamming distance [19]
Mahdavi distance [18]
L-R distance [19]
Tran Duckstein distance [19]
Vertex distance [15]
Weighted Euclidean distance [15]
Weighted Hamming distance [15]

Correlation coefficients

Name Reference
Pearson correlation coefficient [21]
Spearman correlation coefficient [20]
Weighted Spearman correlation coefficient [22]
WS Rank Similarity coefficient [23]

Triangular Fuzzy Number [28]

Functionality name
Addition
Subtractions
Multiplication
Division
Absolute value
Equality
Less equal comparison
Greater equal comparison
Round value
Membership function
Centroid
Core
Inclusion
S-norm operator
T-norm operator

Graphs

Functionality name
Multiple TFNs plot
Single TFN plot
S-norm operator plot
T-norm operator plot
TFN criteria plot
TFN membership plot

Helper / utility functions

Function Module Description
rank pyfdm.utils Legacy ranking helper (delegates to rank_alternatives).
rank_alternatives pyfdm.utils Standalone ranking from any score vector, with 5 tie-breaking strategies.
generate_fuzzy_matrix pyfdm.utils Generates a random TFN decision matrix.
normalize_weights pyfdm.utils Normalizes fuzzy criteria weights to [0, 1].
defuzzify_matrix pyfdm.utils Defuzzifies an entire TFN decision matrix.

Expert data collection and export

Component Module Description
ExpertCollector pyfdm.expert Collects per-expert integer ratings and converts them to TFN matrices.
FuzzyExporter pyfdm.expert Exports collected TFN data to CSV, JSON, or Excel.
SCALE_1_5, SCALE_1_7, SCALE_1_9 pyfdm.expert.scales Built-in linguistic-to-TFN rating scales.

Group aggregation

Function Module Description
aggregate pyfdm.group Combines multiple expert TFN matrices ('geometric', 'arithmetic', 'weighted', 'owa').

Usage examples

More usage examples are available in Jupyter examples.

Basic MCDA ranking

from pyfdm.methods import fARAS
import numpy as np

matrix = np.array([
    [[5, 7, 9], [5, 7, 9], [7, 9, 9]],
    [[1, 3, 5], [3, 5, 7], [3, 5, 7]],
    [[1, 1, 3], [1, 3, 5], [1, 3, 5]],
    [[7, 9, 9], [7, 9, 9], [7, 9, 9]]
])

weights = np.array([[5, 7, 9], [7, 9, 9], [3, 5, 7]])
types = np.array([1, -1, 1])

f_aras = fARAS()
pref = f_aras(matrix, weights, types)

print(f'Fuzzy ARAS preferences: {pref}')
print(f'Fuzzy ARAS ranking: {f_aras.rank()}')

Output:

Fuzzy ARAS preferences: [1.011 0.854 1.312 0.993]
Fuzzy ARAS ranking: [2. 4. 1. 3.]

Inspecting intermediate computation steps

Every MCDA method accepts logger= to capture all intermediate matrices it computes (normalized matrix, weighted matrix, distances, etc.).

from pyfdm.methods import fMARCOS
from pyfdm.step_logger import StepLogger
import numpy as np

matrix = np.array([
    [[5, 7, 9], [5, 7, 9], [7, 9, 9]],
    [[1, 3, 5], [3, 5, 7], [3, 5, 7]],
    [[1, 1, 3], [1, 3, 5], [1, 3, 5]],
    [[7, 9, 9], [7, 9, 9], [7, 9, 9]]
], dtype=float)
weights = np.array([0.4, 0.35, 0.25])
types = np.array([1, -1, 1])

# Print to console
logger = StepLogger(output='console')
method = fMARCOS(logger=logger)
pref = method(matrix, weights, types)

# Or export to selected format
logger = StepLogger(output='json', path='results/marcos_steps')
method = fMARCOS(logger=logger)
pref = method(matrix, weights, types)
# -> results/marcos_steps.json,

Available output formats: 'console', 'json', 'csv', 'excel' (requires pip install pyfdm[excel]). Pass a single string or a list to combine formats.

Subjective weighting (fAHP)

from pyfdm.weights.subjective import fAHP
import numpy as np

# Pairwise TFN comparison matrix (criterion i vs criterion j)
comparison_matrix = np.array([
    [(1, 1, 1),       (2, 3, 4),       (4, 5, 6)],
    [(1/4, 1/3, 1/2), (1, 1, 1),       (2, 3, 4)],
    [(1/6, 1/5, 1/4), (1/4, 1/3, 1/2), (1, 1, 1)],
], dtype=float)

ahp = fAHP()
weights = ahp(comparison_matrix)   # shape (3, 3), TFN weights

Collecting expert judgements and exporting

from pyfdm.expert import ExpertCollector, FuzzyExporter
from pyfdm.expert.scales import SCALE_1_9

collector = ExpertCollector(n_alternatives=4, n_criteria=3, scale=SCALE_1_9)
collector.add_expert_matrix(0, [[9, 3, 7], [5, 9, 3], [3, 5, 9], [7, 3, 5]])
collector.add_expert_matrix(1, [[7, 5, 9], [9, 3, 5], [5, 7, 3], [3, 9, 7]])

exporter = FuzzyExporter(collector)
exporter.to_csv('expert_ratings.csv')
exporter.to_json('expert_ratings.json')
exporter.to_excel('expert_ratings.xlsx')   # requires openpyxl

Group aggregation of expert matrices

from pyfdm.group import aggregate

matrices = collector.get_tfn_matrices()           # list of (m, n, 3) arrays
agg_matrix = aggregate(matrices, method='geometric')

# or weighted by expert importance
agg_matrix = aggregate(matrices, method='weighted', weights=[0.6, 0.4])

Standalone ranking of external scores

Rank any 1-D array of scores directly, without running an MCDA method:

from pyfdm.methods import rank_alternatives

scores = [72.5, 88.0, 88.0, 60.1, 95.3]
ranking = rank_alternatives(scores, descending=True, method='average')
print(ranking)   # [3. 2.5 2.5 5. 1.]

Citations

If you use pyFDM in your research to perform Fuzzy Multi-Criteria Decision Analysis (Fuzzy MCDA), please cite the appropriate publication corresponding to the version of the library used.

Initial version

APA:

Więckowski, J., Kizielewicz, B., & Sałabun, W. (2022). pyFDM: A Python library for uncertainty decision analysis methods. SoftwareX, 20, 101271.

https://doi.org/10.1016/j.softx.2022.101271

BibTeX:

@article{wikeckowski2022pyfdm,
  title={pyFDM: A Python library for uncertainty decision analysis methods},
  author={Wi{\k{e}}ckowski, Jakub and Kizielewicz, Bart{\l}omiej and Sa{\l}abun, Wojciech},
  journal={SoftwareX},
  volume={20},
  pages={101271},
  year={2022},
  publisher={Elsevier}
}

Version 1.1

APA:

Więckowski, J., & Sałabun, W. (2024). Version [1.1]-[pyFDM: A python library for uncertainty decision analysis methods]. SoftwareX, 25, 101607.

https://doi.org/10.1016/j.softx.2023.101607

BibTeX:

@article{wikeckowski2024version,
  title={Version [1.1]-[pyFDM: A python library for uncertainty decision analysis methods]},
  author={Wi{\k{e}}ckowski, Jakub and Sa{\l}abun, Wojciech},
  journal={SoftwareX},
  volume={25},
  pages={101607},
  year={2024},
  publisher={Elsevier}
}

References

[1] Fu, Y. K., Wu, C. J., & Liao, C. N. (2021). Selection of in-flight duty-free product suppliers using a combination fuzzy AHP, fuzzy ARAS, and MSGP methods. Mathematical Problems in Engineering, 2021.

[2] Panchal, D., Chatterjee, P., Shukla, R. K., Choudhury, T., & Tamosaitiene, J. (2017). Integrated Fuzzy AHP-Codas Framework for Maintenance Decision in Urea Fertilizer Industry. Economic Computation & Economic Cybernetics Studies & Research, 51(3).

[3] Narang, M., Joshi, M. C., & Pal, A. K. (2021). A hybrid fuzzy COPRAS-base-criterion method for multi-criteria decision making. Soft Computing, 25(13), 8391-8399.

[4] Zindani, D., Maity, S. R., & Bhowmik, S. (2019). Fuzzy-EDAS (evaluation based on distance from average solution) for material selection problems. In Advances in Computational Methods in Manufacturing (pp. 755-771). Springer, Singapore.

[5] Bozanic, D., Tešić, D., & Milićević, J. (2018). A hybrid fuzzy AHP-MABAC model: Application in the Serbian Army–The selection of the location for deep wading as a technique of crossing the river by tanks. Decision Making: Applications in Management and Engineering, 1(1), 143-164.

[6] Boral, S., Howard, I., Chaturvedi, S. K., McKee, K., & Naikan, V. N. A. (2020). An integrated approach for fuzzy failure modes and effects analysis using fuzzy AHP and fuzzy MAIRCA. Engineering Failure Analysis, 108, 104195.

[7] Karande, P., & Chakraborty, S. (2012). A Fuzzy-MOORA approach for ERP system selection. Decision Science Letters, 1(1), 11-21.

[8] ULUTAŞ, A. (2019). Supplier selection by using a fuzzy integrated model for a textile company. Engineering Economics, 30(5), 579-590.

[9] Chen, C. T. (2000). Extensions of the TOPSIS for group decision-making under fuzzy environment. Fuzzy sets and systems, 114(1), 1-9.

[10] Opricovic, S. (2007). A fuzzy compromise solution for multicriteria problems. International Journal of Uncertainty, Fuzziness and Knowledge-Based Systems, 15(03), 363-380.

[11] Iskander, M. G. (2002). Comparison of fuzzy numbers using possibility programming: comments and new concepts. Computers & Mathematics with Applications, 43(6-7), 833-840.

[12] Kacprzak, D. (2017). Objective weights based on ordered fuzzy numbers for fuzzy multiple criteria decision-making methods. Entropy, 19(7), 373.

[13] Wang, Y. M., & Luo, Y. (2010). Integration of correlations with standard deviations for determining attribute weights in multiple attribute decision making. Mathematical and Computer Modelling, 51(1-2), 1-12.

[14] Bikmukhamedov, R., Yeryomin, Y., & Seitz, J. (2016, July). Evaluation of MCDA-based handover algorithms for mobile networks. In 2016 Eighth International Conference on Ubiquitous and Future Networks (ICUFN) (pp. 810-815). IEEE.

[15] Roszkowska, E., & Wachowicz, T. (2015). Application of fuzzy TOPSIS to scoring the negotiation offers in ill-structured negotiation problems. European Journal of Operational Research, 242(3), 920-932.

[16] Yılmaz, M., & Atan, T. (2021). Hospital site selection using fuzzy EDAS method: case study application for districts of Istanbul. Journal of Intelligent & Fuzzy Systems, (Preprint), 1-12.

[17] Zolfani, S. H., Görçün, Ö. F., & Küçükönder, H. (2021). Evaluating logistics villages in Turkey using hybrid improved fuzzy SWARA (IMF SWARA) and fuzzy MABAC techniques. Technological and Economic Development of Economy, 27(6), 1582-1612.

[18] Wang, H., Lu, X., Du, Y., Zhang, C., Sadiq, R., & Deng, Y. (2017). Fault tree analysis based on TOPSIS and triangular fuzzy number. International journal of system assurance engineering and management, 8(4), 2064-2070.

[19] Talukdar, P., & Dutta, P. A Comparative Study of TOPSIS Method via Different Distance Measure.

[20] Spearman, C. (1910). Correlation calculated from faulty data. British Journal of Psychology, 1904‐1920, 3(3), 271-295.

[21] Pearson, K. (1895). VII. Note on regression and inheritance in the case of two parents. proceedings of the royal society of London, 58(347-352), 240-242.

[22] Dancelli, L., Manisera, M., & Vezzoli, M. (2013). On two classes of Weighted Rank Correlation measures deriving from the Spearman's rho. In Statistical Models for Data Analysis (pp. 107-114). Springer, Heidelberg.

[23] Sałabun, W., & Urbaniak, K. (2020, June). A new coefficient of rankings similarity in decision-making problems. In International Conference on Computational Science (pp. 632-645). Springer, Cham.

[24] Saifullah, S. (2021). Fuzzy-AHP approach using Normalized Decision Matrix on Tourism Trend Ranking based-on Social Media. arXiv preprint arXiv:2102.04222.

[25] Shekhovtsov, A., Paradowski, B., Więckowski, J., Kizielewicz, B., & Sałabun, W. (2022, December). Extension of the SPOTIS method for the rank reversal free decision-making under fuzzy environment. In 2022 IEEE 61st Conference on Decision and Control (CDC) (pp. 5595-5600). IEEE.

[26] Turskis, Z., Zavadskas, E. K., Antuchevičienė, J., & Kosareva, N. (2015). A hybrid model based on fuzzy AHP and fuzzy WASPAS for construction site selection.

[27] Triantaphyllou, E., & Lin, C. T. (1996). Development and evaluation of five fuzzy multiattribute decision-making methods. international Journal of Approximate reasoning, 14(4), 281-310.

[28] Sudha, T., & Jayalalitha, G. (2020, July). Fuzzy triangular numbers in-Sierpinski triangle and right angle triangle. In Journal of Physics: Conference Series (Vol. 1597, No. 1, p. 012022). IOP Publishing.

[29] Berkachy, R., & Donzé, L. (2016). Linguistic questionnaire evaluation: an application of the signed distance defuzzification method on different fuzzy numbers. The impact on the skewness of the output distributions. International Journal of Fuzzy Systems and Advanced Applications, 3, 12-19.

[30] Rodrigues, É. O. (2018). Combining Minkowski and Chebyshev: New distance proposal and survey of distance metrics using k-nearest neighbours classifier. Pattern Recognition Letters, 110, 66-71.

[31] Kizielewicz, B., & Bączkiewicz, A. (2021). Comparison of Fuzzy TOPSIS, Fuzzy VIKOR, Fuzzy WASPAS and Fuzzy MMOORA methods in the housing selection problem. Procedia Computer Science, 192, 4578-4591.

[32] Ulutaş, A., Popovic, G., Radanov, P., Stanujkic, D., & Karabasevic, D. (2021). A new hybrid fuzzy PSI-PIPRECIA-CoCoSo MCDM based approach to solving the transportation company selection problem. Technological and Economic Development of Economy, 27(5), 1227-1249.

[33] Čubranić-Dobrodolac, M., Jovčić, S., Bošković, S., & Babić, D. (2023). A decision-making model for professional drivers selection: A hybridized fuzzy-AROMAN-Fuller approach. Mathematics, 11(13), 2831.

[34] Shojaeimehr, S., & Rahmani, D. (2022). Risk management of photovoltaic power plants using a novel fuzzy multi-criteria decision-making method based on prospect theory: A sustainable development approach. Energy Conversion and Management: X, 16, 100293.

[35] Stanković, M., Stević, Ž., Das, D. K., Subotić, M., & Pamučar, D. (2020). A new fuzzy MARCOS method for road traffic risk analysis. Mathematics, 8(3), 457.

[36] Seraj, M., Yahya, S. M., Badruddin, I. A., Anqi, A. E., Asjad, M., & Khan, Z. A. (2019). Multi-response optimization of nanofluid-based IC engine cooling system using fuzzy method. Processes, 8(1), 30.

[37] Božanić, D., Milić, A., Tešić, D., Salabun, W., & Pamučar, D. (2021). D numbers–FUCOM–fuzzy RAFSI model for selecting the group of construction machines for enabling mobility. Facta Universitatis, Series: Mechanical Engineering, 19(3), 447-471.

[38] Cables, E., Lamata, M. T., & Verdegay, J. L. (2017). FRIM—fuzzy reference ideal method in multicriteria decision making. In Soft computing applications for group decision-making and consensus modeling (pp. 305-317). Cham: Springer International Publishing.

[39] Sun, C. C. (2010). A performance evaluation model by integrating fuzzy AHP and fuzzy TOPSIS methods. Expert systems with applications, 37(12), 7745-7754.

[40] Guo, S., & Zhao, H. (2017). Fuzzy best-worst multi-criteria decision-making method and its applications. Knowledge-Based Systems, 121, 23-31.

[41] Pamucar, D., & Ecer, F. (2020). Prioritizing the weights of the evaluation criteria under fuzziness: the fuzzy full consistency method - FUCOM-F. Facta Universitatis, Series: Mechanical Engineering, 18(3), 419-437.

[42] Božanić, D., Pamučar, D., Milić, A., Marinković, D., & Komazec, N. (2022). Modification of the logarithm methodology of additive weights (LMAW) by a triangular fuzzy number and its application in multi-criteria decision making. Axioms, 11(3), 89.

[43] Więckowski, J., Kizielewicz, B., & Sałabun, W. (2025). Fuzzy RANCOM: a novel approach for modeling uncertainty in decision-making processes. Information sciences, 694, 121716.

[44] Mehdiabadi, A., Sadeghi, A., Karbassi Yazdi, A., & Tan, Y. (2025). Sustainability Service Chain Capabilities in the Oil and Gas Industry: A Fuzzy Hybrid Approach SWARA-MABAC. Spectrum of Operational Research, 2(1), 114-134.

Download files

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

Source Distribution

pyfdm-1.2.0.tar.gz (132.0 kB view details)

Uploaded Source

File details

Details for the file pyfdm-1.2.0.tar.gz.

File metadata

  • Download URL: pyfdm-1.2.0.tar.gz
  • Upload date:
  • Size: 132.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.0

File hashes

Hashes for pyfdm-1.2.0.tar.gz
Algorithm Hash digest
SHA256 dff966effbbd822ca59cb26918e155e1086344caa22f159e94f9fb843239d392
MD5 37464890d06040c63ec60ebe11ead0dc
BLAKE2b-256 4c260a24358e8ed3d718245a82dc78bfb89c513533110fd7b368cbcef79145d8

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.2.0 This release

1 file

1.1.13

1 file

1.1.12

1 file

1.1.11

1 file

1.1.1

1 file

1.1.0

1 file

1.0.2

1 file

1.0.1

2 files

1.0.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page