semvec/pypi-packages huggingface dataset:
hack4u-CCC 0.1.0
Una biblioteca para consultar cursos de hack4u.

# Hack4U Academy Courses Library

Una biblioteca Python para consultar cursos de la academia Hack4U

## Cursos disponibles:

- Introducción a Linux [15 horas]
- Personalización de Linux [3 horas]
- Introducción al Hacking [53 horas]

## Instalación 

Instala el paquete usando `pip3`:

```python3
pip3 install hack4u
``` 
## Uso básico

### Listar todos los cursos

```python
from hack4u import list_courses

for course in list_courses():
	print(course)
```

### Obtener un curso por nombre

```python
from hack4u import get_course_by_name

course = get_course_by_name("Introducción a Linux")
print(course)
```

### Calcular duración total de los cursos

```python3
from hack4u.utils import total_duration

print(f"Duracion total: {total_duration()} horas")
```
Open-Structural-Analysis 0.0.1
Open Source Structural Analysis with Python
Requires Python: >=3.8

# OpenStruct

Open Source Structural Analysis in Python

## Installation
```
$ pip install Open-Structural-Analysis
```

## Capabilities

OpenStruct allows for the creation of simple two-dimensional frame elements
and complex three-dimensional structures alike.

* User Interface :heavy_check_mark:
* 2D truss :heavy_check_mark:
* 3D truss :heavy_check_mark:
* 2D frame :heavy_check_mark:
* 3D space frame :heavy_check_mark:
* Unlimited members :heavy_check_mark:
* Unlimited loads :heavy_check_mark:

## Limitations
* First order elastic analysis only.
* Shear and torsional deformations are not considered.

Second order inelastic analysis methods are currently under development.


## Example
Simply supported beam subject to a point load.
```python
import OpenStruct

model = OpenStruct.Model(plane='xy')

N1 = model.nodes.addNode(0,0,0,'N1')
N2 = model.nodes.addNode(10,0,0,'N2')

N1.restraint([1,1,1,0,0,0])
N2.restraint([1,1,1,0,0,0])

M1 = model.members.addMember(N1, N2)

model.loads.addPointLoad(M1, direction='Y', D=-10, location=50)

model.plot()
```