Skip to main content

A package for eurocode calculations

Project description

eurocodepy v2026.2.1

EurocodePy is a Python package for calculating structures according to Eurocodes. It provides a collection of functions that enable engineers to design and analyze structures based on the Eurocode standards. In addition, it includes a database of structural materials and steel profiles, making it easy to design and analyze structures according to Eurocode standards.

There are also some functions to work with material properties:

  • creep_coef
  • shrink_strain

The utils package has some functions that can be useful:

  • stress: calculate the principal stresses and vectors, and the stress inavariants (I1, J2, J3, ...)

Installation

You can install EurocodePy using pip or uv by running the following command:

pip install eurocodepy

or

uv add eurocodepy

Too upgrade to the latest version use:

pip install eurocodepy --upgrade

Usage

EurocodePy provides a range of functions for designing and analyzing structures according to Eurocodes. Here are some examples:

import eurocodepy as ec
from eurocodepy import ec2

Materials and Profiles Database

EurocodePy includes a database of structural materials and steel profiles. The database is stored in a JSON file and can be easily updated or extended. The materials database includes properties such as the density, modulus of elasticity, and Poisson's ratio, while the steel profiles database includes properties such as the cross-sectional area, moment of inertia, and section modulus.

The database is stored in a JSON file 'eurocodes.json'. This file is loaded when the package is imported, so you can modify it to include your own properties. If you have some suggestions or materials to add to the database and want them to be included for all the community, please contribute as described below in the contributions section. Steel profiles are stored in a separate file 'prof_euro.json'

The database can be accessed through a dictionary. There are also some aliases to easily access the database. The following code gives examples on how to use it.

import eurocodepy as ec

# To access the entire database
db = ec.db

# To access concrete grade C30/37
conc = ec.db["Materials"]["Concrete"]["Grade"]["C30_37"]  # Alternative 1
conc = ec.Materials["Concrete"]["Grade"]["C30_37"]  # Alternative 2
conc = ec.Concrete["Grade"]["C30_37"]  # Alternative 3
conc = ec.ConcreteGrades["C30_37"]  # Alternative 4

# To access a steel profile
ipe200 = ec.db["SteelProfiles"]["EuroI"]["IPE200"]  # Alternative 1
ipe200 = ec.SteelProfiles["EuroI"]["IPE200"]  # Alternative 2

Current materials in the database are:

  • concrete (C20/25 to C90/105)
  • timber (C14 to C24, D18, GL24 to 36)
  • reinforcement - general (B400, B450, B500, B550, B600, B700, classes A, B and C: B400A etc.)
  • reinforcement - portuguese (A400NR, A400NRSD, A500NR, A500NRSD, A500ER, A500EL)
  • structural steel (S235, S275, S355, S460)

Available european steel profiles are:

  • I sections (IPE, HEA, HEB, HEM)
  • L sections
  • C sections
  • T sections
  • Pipe sections
  • Box sections
  • Double L sections
  • Double C sections

Documentation

A more or less complete description of existing packages and modules can be found on https://pcachim.github.io/eurocodepy

License

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

Contributing

We welcome contributions from everyone. Before getting started, please read our Code of Conduct and Contributing Guidelines.

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

eurocodepy-2026.2.1.tar.gz (188.3 kB view details)

Uploaded Source

Built Distribution

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

eurocodepy-2026.2.1-py3-none-any.whl (199.2 kB view details)

Uploaded Python 3

File details

Details for the file eurocodepy-2026.2.1.tar.gz.

File metadata

  • Download URL: eurocodepy-2026.2.1.tar.gz
  • Upload date:
  • Size: 188.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for eurocodepy-2026.2.1.tar.gz
Algorithm Hash digest
SHA256 b6f68b568ae1604b3643a3a0e9e49e6f821f24119496c2fd47bb691e3aa34c41
MD5 4760d19d4adc7a98689f384aea258048
BLAKE2b-256 e41bb7df003ef51b0c9396ef9e601a72ec3f6d2ee035632ead53dfd6b7086cec

See more details on using hashes here.

File details

Details for the file eurocodepy-2026.2.1-py3-none-any.whl.

File metadata

  • Download URL: eurocodepy-2026.2.1-py3-none-any.whl
  • Upload date:
  • Size: 199.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for eurocodepy-2026.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 7e10201bd5a80368cbe91f4310d854e233ae4b91cbc0d878ad539299c6809809
MD5 7be099a0417ebc918f139d73aecc7b1d
BLAKE2b-256 aa778c19e30d7eb3641243644747157e27b61dbc8b1ae3119e070c19b533140e

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