173 lines
3.7 KiB
ReStructuredText
173 lines
3.7 KiB
ReStructuredText
|
.. _file_object:
|
||
|
|
||
|
===========
|
||
|
File object
|
||
|
===========
|
||
|
|
||
|
SourceFile objects are the interface between the OS storage and the repolib
|
||
|
:ref:`source_object` items. Files contain sources and comments and allow for
|
||
|
loading sources from and saving them to disk. They also assign idents to sources
|
||
|
in a way that ensures each source has a unique ident.
|
||
|
|
||
|
Attributes
|
||
|
==========
|
||
|
|
||
|
File objects contain the following attributes:
|
||
|
|
||
|
.. _file-name
|
||
|
|
||
|
name
|
||
|
----
|
||
|
|
||
|
SourceFile.name
|
||
|
The name of the file on disk. This does not include the file extension, as
|
||
|
that is stored in :ref:`file-format`.
|
||
|
|
||
|
.. _file-path
|
||
|
|
||
|
path
|
||
|
----
|
||
|
|
||
|
SourceFile.path
|
||
|
A ``Pathlib.Path`` object representing this file's actual path on disk. Note
|
||
|
that the file may not actually exist on disk yet.
|
||
|
|
||
|
.. _file-format
|
||
|
|
||
|
format
|
||
|
------
|
||
|
|
||
|
SourceFile.format
|
||
|
The format this file should be saved in. Saved as a :ref:`enum_sourceformat`.
|
||
|
|
||
|
.. _file-contents
|
||
|
|
||
|
contents
|
||
|
--------
|
||
|
|
||
|
SourceFile.contents
|
||
|
A :obj:`list` containing, in order, every comment line and source in this
|
||
|
file.
|
||
|
|
||
|
.. _file-sources
|
||
|
|
||
|
sources
|
||
|
-------
|
||
|
|
||
|
SourceFile.sources
|
||
|
A :obj:`list` containing, in order, only the sources in this file.
|
||
|
|
||
|
|
||
|
Methods
|
||
|
=======
|
||
|
|
||
|
.. _file-add_source
|
||
|
|
||
|
add_source()
|
||
|
------------
|
||
|
|
||
|
SourceFile.add_source(source) -> None
|
||
|
Adds a given source to the file. This correctly appends the source to both
|
||
|
the :ref:`file-contents` and :ref:`file-sources` lists, and sets the
|
||
|
:ref:`source-file` attribute of the source to this file.
|
||
|
|
||
|
source
|
||
|
^^^^^^
|
||
|
The source to add to the file.
|
||
|
|
||
|
.. _file-remove_source
|
||
|
|
||
|
remove_source()
|
||
|
---------------
|
||
|
|
||
|
SourceFile.remove_source(ident: str) -> None
|
||
|
Removes the source with a specified ident from this file.
|
||
|
|
||
|
ident
|
||
|
^^^^^
|
||
|
The ident of the source to remove from the file.
|
||
|
|
||
|
.. _file-get_source_by_ident
|
||
|
|
||
|
get_source_by_ident()
|
||
|
---------------------
|
||
|
|
||
|
SourceFile.get_source_by_ident(ident: str) -> :obj:`Source`
|
||
|
Finds a source within this file given a specified ident and returns the
|
||
|
:ref:`source_object` matching that ident. If the file does not contain a
|
||
|
Source matching the given ident, raises a :ref:`exc_sourcefileerror`.
|
||
|
|
||
|
ident
|
||
|
^^^^^
|
||
|
The ident to look up.
|
||
|
|
||
|
.. _file-reset_path
|
||
|
|
||
|
SourceFile.reset_path() -> None
|
||
|
Attempts to detect the full path to the file given the :ref:`file-name`
|
||
|
attribute for this file. If the ``name.sources`` exists on disk, the path
|
||
|
will be set to that, otherwise if the ``name.list`` exists, it will be set
|
||
|
to that instead. Failing both, the path will fallback to ``name.sources`` as
|
||
|
a default.
|
||
|
|
||
|
.. _file-load
|
||
|
|
||
|
load()
|
||
|
------
|
||
|
|
||
|
SourceFile.load() -> None
|
||
|
Loads the file specified by :ref:`path` from disk, creating sources and
|
||
|
comments and appending them in order to the :ref:`file-contents` and
|
||
|
:ref:`file-sources` lists as appropriate.
|
||
|
|
||
|
.. _file-save
|
||
|
|
||
|
save()
|
||
|
------
|
||
|
|
||
|
SourceFile.save() -> None
|
||
|
Saves the file and any sources currently configured to disk. This method
|
||
|
must be called to commit changes to disk. If the file currently contains no
|
||
|
sources, then the file will instead be deleted.
|
||
|
|
||
|
|
||
|
Output
|
||
|
======
|
||
|
|
||
|
There are four attributes which contain the output of the files stored as
|
||
|
strings and which are ready for full output in the specified format.
|
||
|
|
||
|
.. _file-deb822
|
||
|
|
||
|
deb822
|
||
|
------
|
||
|
|
||
|
SourceFile.deb822
|
||
|
Outputs the entire file as DEB822-formatted sources
|
||
|
|
||
|
.. _file-legacy
|
||
|
|
||
|
legacy
|
||
|
------
|
||
|
|
||
|
SourceFile.legacy
|
||
|
Outputs the entire file as one-line legacy-formatted deb lines
|
||
|
|
||
|
.. _file-ui
|
||
|
|
||
|
ui
|
||
|
--
|
||
|
|
||
|
SourceFile.ui
|
||
|
Outputs the file in a format for output through a UI (e.g. for preview or
|
||
|
external parsing.)
|
||
|
|
||
|
.. _file-output
|
||
|
|
||
|
output
|
||
|
------
|
||
|
|
||
|
SourceFile.output
|
||
|
Outputs the entire file in the format matching that configured in
|
||
|
:ref:`file-format`.
|