Skip to main content
Latest PyPI version

API, nástroje a utiltky pre prácu a integráciu s Kockatým Kalendárom pre Python.

Inštalácia

Základná verzia tejto knižnice sa dá nainštalovať pomocou pip:

pip install kockatykalendar

Ak plánujete používať JSON API Kockatého Kalendára, použite:

pip install kockatykalendar[api]

Ak plánujete použiť Django integráciu pre Kockatý Kalendár, použite:

pip install kockatykalendar[django]

Ak chcete obe veci, nainštalujte si kockatykalendar[api,django].

Udalosti v kalendári

kockatykalendar poskytuje Python reprezentáciu udalostí z Kockatého Kalendára. Možno ju využiť na prácu s udalosťami v kalendári ale aj ich tvorbu.

from datetime import date
from kockatykalendar.events import Event, EventType, EventScience, EventContestant

event = Event()
event._id = "ksp-sus-1"
event.name = "KSP sústredenie"
event.type = EventType.SUSTREDENIE
event.sciences = [EventScience.INF]
event.date.start = date(2020, 12, 13)
event.date.end = date(2020, 12, 20)
event.contestants.min = EventContestant(EventContestant.SchoolType.STREDNA, 1)
event.contestants.min = EventContestant(EventContestant.SchoolType.STREDNA, 4)
event.places = ["TBD"]
event.organizers = ["trojsten"]
event.link = "https://ksp.sk/akcie/sustredenia/"
print(event.to_json())

event = Event.from_json(...)

API

Súčasťou kockatykalendar je aj prístup do JSON API Kockatého Kalendára.

from kockatykalendar.api import get_events, get_current_dataset, get_available_datasets

get_available_datasets()
# [
#   Dataset(start_year=2020,
#           end_year=2021,
#           school_year="2020/2021",
#           filename="2020_21.json"),
#   ...
# ]

get_current_dataset()
# Dataset(start_year=2020,
#         end_year=2021,
#         school_year="2020/2021",
#         filename="2020_21.json")

get_events(dataset) # Dataset môže byť: Dataset, filename alebo celá URL.
# [
#   Event,
#   ...
# ]

Django integrácia

Zatiaľ iba draft, ešte pracujeme na všetkých detailoch implementácie.

Organizátori môžu poskytovať svoje udalosti do Kockatého Kalendára aj prostredníctvom endpointu na ich stránkach. V prípade Djanga si stačí zadefinovať jeden alebo viac generátorov, ktoré budú tvoriť obsah kalendára:

from kockatykalendar.generators import CalendarGenerator
from kockatykalendar.events import Event, EventType, EventScience

class NaseSeminareGenerator(CalendarGenerator):
    def items(self):
        return Seminar.objects.all()

    def event(self, item):
        return Event(
            _id="seminar-%d" % item.id,
            name=item.name,
            sciences=[EventScience.MAT],
            type=EventType.SEMINAR,
            oragnizers=["trojsten"],
            places=["online"],
            date=Event.Dates(start=item.start, end=item.end)
        )

Generátor nie je závislý na Djangu, možno ho použiť aj s inými frameworkami, pokiaľ sa dodrží formát výstupu. Následne treba pridať view do URLconf-u:

from kockatykalendar.django import kockatykalendar_json

path("kkalendar.json", kockatykalendar_json, {"generators": [NaseSeminareGenerator()]})

Metadata

Release files for kockatykalendar 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for kockatykalendar 0.1.2
File Size Uploaded
kockatykalendar-0.1.2.tar.gz 6.3 kB Details

Release files / kockatykalendar-0.1.2.tar.gz

Download URL kockatykalendar-0.1.2.tar.gz
Size 6.3 kB
Tags Source
SHA-256 checksum
How to use checksums
36300cd44b4422dcc91f944e194f65bdc711ccc2efe32b26ebcf5950e05aac14
BLAKE2b-256 checksum
How to use checksums
bd3888bb2afc72c72e4a09067aed4e3580636ced3b3a1edec5a342770cdaa50c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via Python-urllib/3.7

Release history Release notifications | RSS feed

This release

0.1.2 This release

1 release file

0.1.1

1 release file

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page