https://github.com/SoftwareHeritage/swh-model
Revision e632abed41c5cd71507c4222e1e85987556b232c authored by David Douard on 13 May 2020, 15:03:01 UTC, committed by David Douard on 24 June 2020, 15:39:02 UTC
this aims at preventing constant usage of isinstance() based dispatch
code when writing generic code handling model entities.

For example, the "object_type" argument of JournalWriter.write_addition() has
become superflous now we only pass model entities, etc.

This idea comes olasd's reading of mypy doc:

  https://mypy.readthedocs.io/en/latest/literal_types.html#tagged-unions

This comes with a refactoring of from_dict.DiskBackedContent to make
it *not* inherit from model.Content: object_type being Final, it cannot
be overloaded.
1 parent 661b7c2
Raw File
Tip revision: e632abed41c5cd71507c4222e1e85987556b232c authored by David Douard on 13 May 2020, 15:03:01 UTC
Tag model entities with their "object_type"
Tip revision: e632abe
README.md
swh-model
=========

Implementation of the Data model of the Software Heritage project, used to
archive source code artifacts.

This module defines the notion of Persistent Identifier (PID) and provides
tools to compute them:

```sh
   $ swh-identify fork.c kmod.c sched/deadline.c
   swh:1:cnt:2e391c754ae730bd2d8520c2ab497c403220c6e3    fork.c
   swh:1:cnt:0277d1216f80ae1adeed84a686ed34c9b2931fc2    kmod.c
   swh:1:cnt:57b939c81bce5d06fa587df8915f05affbe22b82    sched/deadline.c

   $ swh-identify --no-filename /usr/src/linux/kernel/
   swh:1:dir:f9f858a48d663b3809c9e2f336412717496202ab
```
back to top