Struttura del repository Python e C ++

2

Sto refactoring la struttura di directory di un repository Python di grandi dimensioni che contiene una dozzina di file C e C ++ disseminati ovunque. Esiste un architettura suggerita per un pacchetto Python che contiene codice C / C ++ al suo interno? Quello che ho al momento per il mio repository foo è:

foo/
├── LICENSE
├── Makefile
├── README.md
├── docs/
├── examples/
├── foo/
│   ├── __init__.py
│   ├── README.md
│   ├── core/
│   │   ├── __init__.py
│   │   ├── foo_tricks_slow.py
│   │   ├── foo_tricks_fast.cpp
│   │   └── foo_tricks_fast.mk
│   ├── experiments/
│   └── utils/
├── requirements.txt
├── setup.py
└── tests/  # Run with py.test
    ├── __init__.py
    └── test_foo.py

Ogni subdir core/ , experiments/ , utils/ e così via contiene principalmente file python e alcuni file C / C ++.

Alcune cose su cui ho sentito opinioni contrastanti su cui vorrei arrivare a una conclusione includono

  1. Mettere i test al di fuori del pacchetto Python
  2. Mettere sorgente in una src/ dir
  3. Mantenere una directory per Python e una directory per C / C ++

Alcune fonti di informazioni che ho visto includono:

A. Struttura del filesystem di un progetto Python di Jean-Paul Calderone

B. cookiecutter

C. post sul blog di Jeff Knupp

D. Questa domanda SO è vicina, ma io non ho un progetto C ++ autonomo, ma piuttosto un misc. file, ciascuno con il proprio file mk che viene accumulato durante l'esecuzione del Makefile principale.

E. Repository di esempio come Tensorflow, Keras, Nupic, Django

Relativo : vorrei che il repository fosse installato e compilato con pip install foo . Non sono sicuro di come questo potrebbe anche costruire i file C / C ++. Ad esempio, pip install tensorflow lo raggiunge. Forse è per una seconda domanda SO però.

    
posta BoltzmannBrain 25.07.2017 - 18:38
fonte

0 risposte

Leggi altre domande sui tag