Python-moduulien tiedostoversiointi
Project description
python-takauma
Python-moduulien tiedostoversiointi
Luokkakohtainen versionmuodostus:
Oletetaan, että paketti python-foobar on asennettu, ja sen versionumero on 1.2.3.
Olkoon tiedosto spam.py seuraavansisältöinen:
# python-foobar/foobar/spam.py
from takauma import Versio
class Spam:
__versio__ = Versio()
print(Foo.__versio__)
Tällöin komento python -m foobar.spam tulostaa Version('1.2.3').
Aiemmat luokkaversiot:
Oletetaan paketin asennus samoin kuin edellä.
Olkoon tiedosto eggs.py seuraavansisältöinen:
# python-foobar/foobar/eggs.py
# versiointi: *
from takauma import etsi_versiot
class Eggs:
luku = 42
Eggs._aiemmat_versiot = etsi_versiot(Eggs)
for versio in '1.2.4', '1.2.3', '1.2.2', '1.2.1', '1':
try: print(Eggs._aiemmat_versiot[versio].luku)
except Exception as exc: print(exc)
Oletetaan lisäksi, että levyllä on jäljellä aiempi versio samasta tiedostosta:
# python-foobar/foobar/eggs-1.2.1.py
class Eggs:
luku = 24
Silloin komento python -m foobar.eggs tulostaa seuraavasti:
42
42
24
24
KeyError: '1'
Aiempien versioiden luonti:
Aiempi tiedostoversio tunnistetaan tiedostonimen mukaan silloin, kun se on muotoa <moduuli>-<versio>.py, missä <moduuli>.py on viimeisin, ajossa oleva tiedostoversio.
Git-versiointi (https://pypi.org/project/git-versiointi/) tallentaa aiemmat versiot automaattisesti git-muutostietojen mukaan erityisen versiointimerkinnän perusteella: ks. edellä eggs.py-tiedostossa rivi 2.
Versiointimääritys (# versiointi: x) aiheuttaa sen, että kopiot tiedostosta tallennetaan git-versiohistorian mukaisesti git-revisioon x asti (poissulkevasti), tai historian alkuun saakka (*).
Huomaa, että aiempien tiedostoversioiden muodostus versiomäärityksen perusteella tapahtuu pip-asennuksen build_py-vaiheessa, eikä niitä siis synny automaattisesti kehitystilassa olevalle paketin sisälle. Sen sijaan aiemman version testaus onnistuu vaikkapa seuraavantyyppisen komennon avulla:
git -C python-foobar show HEAD~2:foobar/eggs.py > python-foobar/foobar/eggs-1.2.1.py
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file python_takauma-0.6.3.tar.gz.
File metadata
- Download URL: python_takauma-0.6.3.tar.gz
- Upload date:
- Size: 7.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.12.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d4d6b53978270416b934d5f1b4f6156cc56b96da15c4da8c0592a19f7837a8e3
|
|
| MD5 |
df6a3a8ede9b23573f23a02da34cec23
|
|
| BLAKE2b-256 |
c160c8b2dcc00bbbfddf7005156533cbe81418778e5242e205969ea90271e500
|
File details
Details for the file python_takauma-0.6.3-py3-none-any.whl.
File metadata
- Download URL: python_takauma-0.6.3-py3-none-any.whl
- Upload date:
- Size: 8.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.12.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9c0c8529988cdecf4ee918c232d677e6e877242d38a450d28e5ef81674e7b828
|
|
| MD5 |
784a64a9d749323dc57790da9f6c28b2
|
|
| BLAKE2b-256 |
d9caab91617ced7089fa90318cd910bb0a90af9bbe8296ca4ed7bc27a315edfd
|