Add core physics manuscript: The Computability of Recursive Coherence
This commit is contained in:
19383 files changed
+715601
-56
No files matched your search
@@ -0,0 +1,96 @@
|
||||
#! python3 # noqa: E265
|
||||
|
||||
# ############################################################################
|
||||
# ########## Libraries #############
|
||||
# ##################################
|
||||
|
||||
# for class autoref typing
|
||||
from __future__ import annotations
|
||||
|
||||
# standard
|
||||
from dataclasses import dataclass, field
|
||||
from typing import TYPE_CHECKING, Any
|
||||
|
||||
# package modules
|
||||
from mkdocs_rss_plugin.__about__ import __title__, __version__
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from collections.abc import MutableMapping
|
||||
from datetime import datetime
|
||||
from pathlib import Path
|
||||
|
||||
from mkdocs.structure.pages import Page
|
||||
|
||||
# ############################################################################
|
||||
# ########## Classes ###############
|
||||
# ##################################
|
||||
|
||||
|
||||
@dataclass
|
||||
class MkdocsPageSubset:
|
||||
"""Minimal subset of a Mkdocs Page with only necessary attributes for plugin needs."""
|
||||
|
||||
abs_src_path: str
|
||||
dest_uri: str
|
||||
src_uri: str
|
||||
title: str | None = None
|
||||
meta: MutableMapping[str, Any] | None = None
|
||||
|
||||
@classmethod
|
||||
def from_page(cls, page: Page) -> MkdocsPageSubset:
|
||||
"""Create a PageSubset from a Mkdocs page.
|
||||
|
||||
Args:
|
||||
page: MkDocs Page object
|
||||
"""
|
||||
return cls(
|
||||
abs_src_path=page.file.abs_src_path,
|
||||
meta=page.meta,
|
||||
title=page.title,
|
||||
src_uri=page.file.src_uri,
|
||||
dest_uri=page.file.dest_uri,
|
||||
)
|
||||
|
||||
|
||||
@dataclass
|
||||
class PageInformation:
|
||||
"""Object describing a page information gathered from Mkdocs and used as feed's item."""
|
||||
|
||||
abs_path: Path | None = None
|
||||
categories: list | None = None
|
||||
authors: tuple | None = None
|
||||
comments_url: str | None = None
|
||||
created: datetime | None = None
|
||||
description: str | None = None
|
||||
guid: str | None = None
|
||||
image: tuple[str, str, int] | None = None
|
||||
link: str | None = None
|
||||
pub_date: str | None = None
|
||||
title: str | None = None
|
||||
updated: datetime | None = None
|
||||
# private
|
||||
_mkdocs_page_ref: MkdocsPageSubset | None = field(
|
||||
default=None, repr=False, compare=False
|
||||
)
|
||||
|
||||
|
||||
@dataclass
|
||||
class RssFeedBase:
|
||||
"""Object describing a feed."""
|
||||
|
||||
author: str | None = None
|
||||
buildDate: str | None = None
|
||||
copyright: str | None = None
|
||||
description: str | None = None
|
||||
entries: list[PageInformation] = field(default_factory=list)
|
||||
generator: str = f"{__title__} - v{__version__}"
|
||||
html_url: str | None = None
|
||||
json_url: str | None = None
|
||||
language: str | None = None
|
||||
logo_url: str | None = None
|
||||
pubDate: str | None = None
|
||||
repo_url: str | None = None
|
||||
rss_url: str | None = None
|
||||
stylesheet: str | None = None
|
||||
title: str | None = None
|
||||
ttl: int | None = None
|
||||
Reference in new issue
Block a user