Typ projektu: Biblioteka naukowa Python do fizyki jądrowej i gwiazd neutronowych
Rozmiar: ~5000 linii kodu Python
Status: Projekt badawczy z dokumentacją Sphinx
Data analizy: 1 listopada 2025
- Brak
setup.pylubpyproject.toml - Niemożliwa instalacja przez
pip install - Brak metadanych pakietu
- Utworzyć
pyproject.tomlz konfiguracją Poetry/setuptools - Dodać informacje o licencji, autorze, zależnościach
- Umożliwić instalację:
pip install -e .
main.py- zaśmiecony plik testowy (6674 bajty zakomentowanego kodu)- Brak testów jednostkowych - w
tests/są tylko podstawowe testy - TODOs w kodzie - 21 nierozwiązanych zadań
- Słaba dokumentacja README.md - tylko "# libnest"
- Niekonsystentne nagłówki - mieszanka polskich i angielskich komentarzy
- Wyczyścić
main.pylub przenieść doexamples/ - Napisać właściwe testy jednostkowe z pytest
- Rozwiązać lub udokumentować wszystkie TODOs
- Napisać kompletny README z przykładami użycia
- Ujednolicić język (preferowane EN dla kodu)
# Linia 134-135 - niezdefiniowane zmienne globalne
energy=e*HBARC/(2*(MN*particleN(density_n)+MP*particleN(density_p))/(particleN(density)))HBARC,MN,MPnie są zaimportowane
- Linia 105, 301, 339 - TODOs o połączeniu funkcji
- Funkcja
mu_q()używaeffMn()ieffMp()które nie istnieją w pliku
- Dodać brakujące importy z
libnest.units - Połączyć duplikujące się funkcje
- Sprawdzić i naprawić wszystkie zależności
- Minimalistyczny README
- Brak przykładów użycia w głównym katalogu
- Brak informacji o wymaganiach systemowych
- Brak badge'ów (testy, pokrycie, wersja)
- Rozbudować README o:
- Opis projektu i celów naukowych
- Instrukcję instalacji
- Szybki start (quick start)
- Przykłady użycia
- Link do pełnej dokumentacji
- Informacje o autorach i finansowaniu
- Status rozwoju
- Brak CI/CD (GitHub Actions)
- Brak formattera (black, ruff)
- Brak pre-commit hooks
- Brak type hints
- Kodowanie
# -*- coding:utf-8 -*-niepotrzebne w Python 3
- Dodać GitHub Actions dla testów
- Skonfigurować
rufflubblack - Dodać pre-commit hooks
- Stopniowo dodawać type hints
- Usunąć przestarzałe nagłówki
- Funkcja
threeSlice()używadtype="object"- lepiej używać konkretnych typów centerOfMass()- można zoptymalizować używającnp.average()z wagami
- ✅ Utworzenie
pyproject.toml - ✅ Napisanie kompletnego README.md
- ✅ Dodanie
setup.pylub pełna konfiguracja pyproject.toml - ✅ Porządkowanie
main.py(przeniesienie do examples/)
- ✅ Naprawienie brakujących importów
- ✅ Rozwiązanie TODOs w kodzie
- ✅ Napisanie testów jednostkowych
- ✅ Dodanie GitHub Actions CI
- ✅ Konfiguracja formattera (ruff/black)
- ✅ Dodatnie type hints
- ✅ Usprawnienie dokumentacji docstring
- ✅ Dodanie przykładów użycia
- Handling WDATA format with Forbes' python library
- Linia 18: Make table of BSk parameters
- Linia 567, 732: TODO lists w komentarzach
- Linia 999: Make different functions for neutrons and protons
- Linia 50, 123: DEALING WITH background density
- Linia 62: Include X, Y, Z directions
- Linia 98: DOCUMENTATION, FORMULA
- Linia 105: Check if I should return rho_n-rho_p OR rho_n-rho_p/(rho_n+rho_p + DENSEPSILON)
- Linia 301, 339: Join these two functions: E_minigap_delta_n and E_minigap_rho_n
- Linia 9: TODO - general file description
- Linia 134-135: Używa
HBARC,MN,MPbez importu zlibnest.units
- Funkcja
mu_q()wywołujeeffMn()ieffMp()- prawdopodobnie zlibnest.bsk - Brak importu
sysmimo używaniasys.exit()
- sphinxcontrib-bibtex
- sphinx_rtd_theme
- matplotlib
- numpy
- pandas
- pytest (testy)
- pytest-cov (pokrycie testów)
- ruff lub black (formatowanie)
- mypy (type checking)
- pre-commit (hooks)
Projekt jest częścią prac badawczych z zakresu:
- Fizyki jądra atomowego
- Struktury gwiazd neutronowych
- Parametryzacji Brussels-Montreal (BSk)
- Teorii parowania i nadciekłości neutronów
Afiliacje:
- Warsaw Technical University
- Université Libre de Bruxelles
- Institute of Physics, Polish Academy of Sciences
Autor: Daniel Pęcak daniel.pecak@pw.edu.pl
- Całkowita liczba linii: ~5011
- Liczba modułów: 8 głównych modułów w
libnest/ - Liczba skryptów przykładowych: 1 (
examples/tools_example.py) - Liczba skryptów do dokumentacji: 11 (w
docs/source/plots/) - Liczba plików testowych: 2 (
tests/tests.py,tests/units_tests.py)
- Natychmiastowe: Naprawienie brakujących importów
- Krótkoterminowe: Czyszczenie kodu, rozwiązanie TODOs
- Średnioterminowe: Dodanie testów i CI/CD
- Długoterminowe: Dokumentacja i publikacja pakietu