Biblioteka eu07-tools (Python): Różnice pomiędzy wersjami

Z MaSzyna
Skocz do: nawigacja, szukaj
(T3DDatablock)
(Element)
 
(Nie pokazano 18 pośrednich wersji utworzonych przez tego samego użytkownika)
Linia 1: Linia 1:
 
Biblioteka eu07_tools to zestaw klas i funkcji, które w założeniu mają pomóc w pisaniu programów operujących na plikach symulatora. Jest zaimplementowana w języku Python.
 
Biblioteka eu07_tools to zestaw klas i funkcji, które w założeniu mają pomóc w pisaniu programów operujących na plikach symulatora. Jest zaimplementowana w języku Python.
  
= t3d =
+
= Opis funckjonalności =
== structures ==
+
== t3d ==
 +
Moduł zawierający funkcje zapisu oraz odczytu elementów modelu (submodele, include) z pliku oraz funkcje-fabryki do tworzenia tych struktur.
 +
=== load ===
 +
t3d.load(file: TextIO) -> Iterator[t3d.Element]
 +
Odczytuje podany plik i zwraca odczytane elementy w postaci iteratora.
 +
Przykład:
 +
import eu07_tools
 +
 +
with open("model.t3d", "r") as in_file:
 +
    model_elements = eu07_tools.t3d.load(in_file)
 +
 +
    for element in model_elements:
 +
        ... # tutaj bawimy się elementami
 +
 
 +
=== dump ===
 +
t3d.dump(model_elements: Iterable[t3d.Element], file: TextIO) -> None
 +
Zapisuje elementy z sekwencji do podanego pliku
 +
Przykład:
 +
import eu07_tools
 +
 +
# Zgodnie z wytycznymi, pliki powinny być kodowane w standardzie Windows-1250
 +
# oraz posiadać końce linii CRLF.
 +
with open("model.t3d", "w", newline="\r\n", encoding="windows-1250") as out_file:
 +
    eu07_tools.t3d.load(model_elements, out_file)
 +
 
 
=== create_submodel ===
 
=== create_submodel ===
Tworzy instancję konkretnej klasy submodelu.
+
t3d.create_submodel(type: str, name: str) -> t3d.Submodel
 
+
Tworzy nazwaną instancję submodelu. Konkretna klasa zależy od argumentu 'type'.
Argumenty:
+
Przykład:
* '''typename''' (str) - nazwa typu submodelu (''Mesh'', ''FreeSpotLight'' lub ''Stars'')
+
import eu07_tools
* '''name''' (str) - nazwa submodelu (wymagana)
+
 +
mesh = eu07_tools.t3d.create_submodel("Mesh", "siatka")
 +
freespot = eu07_tools.t3d.create_submodel("FreeSpotLight", "lampka")
 +
stars = eu07_tools.t3d.create_submodel("Stars", "gwiazdki")
  
 
=== create_include ===
 
=== create_include ===
Tworzy instancję klasy ''T3DInclude''
+
t3d.create_include(path: str, parameters: Iterable[str] = None) -> t3d.Include
 
+
Tworzy instancję elementu typu "include".
Argumenty:
+
Przykład:
* '''path''' (str) - ścieżka do dołączanego pliku (relatywna)
+
import eu07_tools
 +
 +
include = eu07_tools.t3d.create_include("models/parts/wozek.t3d", [])
 +
include = eu07_tools.t3d.create_include("models/parts/parametryzowany_wozek.t3d", ["0", "4", "example"])
  
=== T3DElement ===
+
=== Element ===
Klasa bazowa dla konkretnych klas reprezentujących składowe elementy modelu (submodele, include)
+
class Element(abc.ABC)
 +
Klasa nadrzędna dla elementów modelu (t3d.Submodel, t3d.Include)
  
 
Atrybuty:
 
Atrybuty:
* '''datablock_type''' (str) - nazwa określająca typ elementu ("submodel", "include")
+
element_type: str = ""
 +
Nazwa typu elementu - służy do klasyfikacji elementów.
 +
Konkretna wartość jest nadawana dopiero w klasach pochodnych.
  
=== T3DInclude ===
+
=== Include ===
  class T3DInclude(T3DDatablock):
+
  class Include(t3d.Element)
    datablock_type:
+
Reprezentacja dyrektywy include. Dziedziczy atrybuty z t3d.Element.
  
== input ==
+
Atrybuty:
== output ==
+
element_type: str = "include" # Nazwa typu elementu, atrybut dziedziczony.
 
+
path: str # Relatywna ścieżka do dołączanego pliku. Wartość nadawana jest przez konstruktor.
= scn =
+
parameters: List[str] # Lista parametrów. Wartość nadawana jest przez konstruktor.
== structures ==
 
== input ==
 
== output ==
 

Aktualna wersja na dzień 15:55, 6 sie 2019

Biblioteka eu07_tools to zestaw klas i funkcji, które w założeniu mają pomóc w pisaniu programów operujących na plikach symulatora. Jest zaimplementowana w języku Python.

Opis funckjonalności

t3d

Moduł zawierający funkcje zapisu oraz odczytu elementów modelu (submodele, include) z pliku oraz funkcje-fabryki do tworzenia tych struktur.

load

t3d.load(file: TextIO) -> Iterator[t3d.Element]

Odczytuje podany plik i zwraca odczytane elementy w postaci iteratora. Przykład:

import eu07_tools

with open("model.t3d", "r") as in_file:
    model_elements = eu07_tools.t3d.load(in_file)

    for element in model_elements:
        ... # tutaj bawimy się elementami

dump

t3d.dump(model_elements: Iterable[t3d.Element], file: TextIO) -> None

Zapisuje elementy z sekwencji do podanego pliku Przykład:

import eu07_tools

# Zgodnie z wytycznymi, pliki powinny być kodowane w standardzie Windows-1250
# oraz posiadać końce linii CRLF.
with open("model.t3d", "w", newline="\r\n", encoding="windows-1250") as out_file:
    eu07_tools.t3d.load(model_elements, out_file)

create_submodel

t3d.create_submodel(type: str, name: str) -> t3d.Submodel

Tworzy nazwaną instancję submodelu. Konkretna klasa zależy od argumentu 'type'. Przykład:

import eu07_tools

mesh = eu07_tools.t3d.create_submodel("Mesh", "siatka")
freespot = eu07_tools.t3d.create_submodel("FreeSpotLight", "lampka")
stars = eu07_tools.t3d.create_submodel("Stars", "gwiazdki")

create_include

t3d.create_include(path: str, parameters: Iterable[str] = None) -> t3d.Include

Tworzy instancję elementu typu "include". Przykład:

import eu07_tools

include = eu07_tools.t3d.create_include("models/parts/wozek.t3d", [])
include = eu07_tools.t3d.create_include("models/parts/parametryzowany_wozek.t3d", ["0", "4", "example"])

Element

class Element(abc.ABC)

Klasa nadrzędna dla elementów modelu (t3d.Submodel, t3d.Include)

Atrybuty:

element_type: str = ""

Nazwa typu elementu - służy do klasyfikacji elementów. Konkretna wartość jest nadawana dopiero w klasach pochodnych.

Include

class Include(t3d.Element)

Reprezentacja dyrektywy include. Dziedziczy atrybuty z t3d.Element.

Atrybuty:

element_type: str = "include" # Nazwa typu elementu, atrybut dziedziczony.
path: str # Relatywna ścieżka do dołączanego pliku. Wartość nadawana jest przez konstruktor.
parameters: List[str] # Lista parametrów. Wartość nadawana jest przez konstruktor.