PYTHONOMANIA
273 subscribers
195 photos
3 videos
1 file
616 links
Откройте для себя мир Python в PYTHONOMANIA!

Идеально подходит как для начинающих, так и для опытных разработчиков. Присоединяйтесь к нам, чтобы достичь совершенства в Python!

Сайт: https://pythonomania.github.io/
Download Telegram
📱Archimedes.

Archimedes — это open-source фреймворк на Python, созданный для того, чтобы переносить управляющие алгоритмы прямо на реальное оборудование. Он объединяет в себе моделирование, симуляцию, оптимизацию и генерацию C-кода — всё, что нужно для полного цикла разработки систем управления.

❓Что умеет Archimedes:

🔘NumPy-совместимый API с автоматическим выбором бэкенда.

🔘Быстрое выполнение вычислительных графов в скомпилированном C++.

🔘Автоматическое дифференцирование (forward & reverse mode, sparse).

🔘Поддержка плагин-решателей: ODE/DAE, root-finding, NLP.

🔘Генерация C-кода для embedded-устройств.

🔘JAX-подобные трансформации функций.

🔘PyTorch-стиль структур для параметров и моделей.

🐱Для кого Archimedes:

🔘Инженеры управления.

🔘Разработчики роботов.

🔘Специалисты по оптимизации.

🔘Разработчики embedded-софта.

🔘Исследователи динамических систем.

✅Если тебе нужно писать алгоритмы на Python и переносить их на железо без ручного переписывания — Archimedes закрывает эту проблему полностью.

#python #casadi #embedded #controlsystems #numerics #autodiff #opensource #archimedes #pythonlibrary #engineering #robotics #optimization #coding #tech

📱Ссылка на репозиторий:
https://pinetreelabs.github.io/archimedes/index.html
Please open Telegram to view this post
VIEW IN TELEGRAM
13👍2⚡1
📱CadQuery.

CadQuery — это интуитивно понятный и простой в использовании Python-модуль для построения параметрических 3D CAD-моделей.

Пишете короткий скрипт на Python — получаете высококачественную 3D-модель, которую легко менять, настраивать и переиспользовать!

Многие сравнивают его с OpenSCAD (так как обе системы основаны на коде), но у CadQuery есть серьезные козыри в рукаве:

🔹Преимущества:

🔘Это полноценный Python: Вы можете использовать всю мощь языка, стандартные библиотеки, IDE (VS Code, PyCharm) и экосистему Python.

🔘Мощное ядро: В отличие от CGAL в OpenSCAD, здесь используется ядро Open CASCADE Technology (OCCT). Оно нативно поддерживает NURBS, сплайны, импорт/экспорт STEP и сложнейшие операции с поверхностями.

🔘Идеально для импорта: Вы можете загрузить готовый .step файл (созданный в другом CAD) и скриптами добавить к нему новые параметрические элементы.

🔘Меньше кода: Фигуры можно позиционировать относительно друг друга, используя вершины или рабочие плоскости (workplanes), что сильно сокращает объем кода.

🔘Подходит для серверов: Библиотека создавалась для работы без GUI, что делает ее идеальной для интеграции в бекенд и автоматизации инженерных задач.

🔘Но есть и GUI! Для удобства разработки существует отличный визуальный редактор CQ-editor и даже встроенная поддержка JupyterLab.

⬇️Установка:

Рекомендуется использовать mamba/conda для автоматического разрешения сложных C++ зависимостей:
conda create -n cadquery
conda activate cadquery
mamba install -c conda-forge cadquery

Либо через pip (если у вас свежий Python):
pip install cadquery

#Python #CAD #3D #3DModeling #Engineering #CadQuery #OpenSource #DevTools

📱Ссылка на репозиторий:
https://github.com/cadquery/cadquery
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥22⚡1
📱Pydantic Pint.

Pydantic Pint
- это библиотека для Python, объединяющая возможности валидации данных из Pydantic с библиотекой для работы с физическими величинами и единицами измерения.

Если ваш проект связан с инженерией, научными вычислениями, геоданными или физикой, вам наверняка знакома проблема: Pydantic отлично проверяет типы и структуры, а Pint берет на себя математику над размерными величинами (метры, килограммы, секунды, градусы). По умолчанию они несовместимы, и разработчикам приходится писать кастомные сериализаторы. pydantic-pint устраняет этот разрыв с помощью чистого синтаксиса typing.Annotated.

🔹Ключевые возможности:

🔘Строгая типизация размерностей: Позволяет задать целевую единицу измерения для поля модели через аннотацию PydanticPintQuantity("unit").

🔘Автоматическая конвертация: Если поле ожидает километры (km), а на вход передали строку "12 meters", библиотека проверит размерность и сама пересчитает значение в 0.012 kilometer. Ошибочные размерности (например, попытка передать секунды вместо метров) приведут к ошибке валидации.

🔘Полная поддержка сериализации: Корректно выгружается в структуры Python и JSON через стандартные методы Pydantic V2 (model_dump() и model_dump_json()).

🔘Современный синтаксис: Не требует наследования от специальных базовых классов — работает прямо внутри стандартного pydantic.BaseModel.

🔻Пример использования:
from typing import Annotated
from pydantic import BaseModel
from pydantic_pint import PydanticPintQuantity
from pint import Quantity

class Coordinates(BaseModel):
latitude: Annotated[Quantity, PydanticPintQuantity("deg")]
longitude: Annotated[Quantity, PydanticPintQuantity("deg")]
# Поле ожидает километры:
altitude: Annotated[Quantity, PydanticPintQuantity("km")]

# Передаем высоту в метрах — библиотека сконвертирует её сама:
coord = Coordinates(
latitude="39.905705 deg",
longitude="-75.166519 deg",
altitude="12 meters",
)

print(coord.altitude)
# -> <Quantity(0.012, 'kilometer')>

# Сериализация в JSON
print(coord.model_dump_json())
# -> {"latitude":"39.905705 degree","longitude":"-75.166519 degree","altitude":"0.012 kilometer"}


📦Установка:
pip install pydantic-pint


#Python #Pydantic #Pint #DataValidation #DataScience #Physics #Engineering #Backend #OpenSource #DevTools

📱Ссылка на репозиторий:
https://github.com/tylerh111/pydantic-pint
Please open Telegram to view this post
VIEW IN TELEGRAM
👍42🔥1