Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

python_takauma-0.6.3.tar.gz (7.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

python_takauma-0.6.3-py3-none-any.whl (8.6 kB view details)

Uploaded Python 3

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

Hashes for python_takauma-0.6.3.tar.gz
Algorithm Hash digest
SHA256 d4d6b53978270416b934d5f1b4f6156cc56b96da15c4da8c0592a19f7837a8e3
MD5 df6a3a8ede9b23573f23a02da34cec23
BLAKE2b-256 c160c8b2dcc00bbbfddf7005156533cbe81418778e5242e205969ea90271e500

See more details on using hashes here.

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

Hashes for python_takauma-0.6.3-py3-none-any.whl
Algorithm Hash digest
SHA256 9c0c8529988cdecf4ee918c232d677e6e877242d38a450d28e5ef81674e7b828
MD5 784a64a9d749323dc57790da9f6c28b2
BLAKE2b-256 d9caab91617ced7089fa90318cd910bb0a90af9bbe8296ca4ed7bc27a315edfd

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page