Skip to main content

API, tools and utilities for working with KockatyKalendar.sk

Project description

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()]})

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

kockatykalendar-0.1.2.tar.gz (6.3 kB view details)

Uploaded Source

File details

Details for the file kockatykalendar-0.1.2.tar.gz.

File metadata

  • Download URL: kockatykalendar-0.1.2.tar.gz
  • Upload date:
  • Size: 6.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: Python-urllib/3.7

File hashes

Hashes for kockatykalendar-0.1.2.tar.gz
Algorithm Hash digest
SHA256 36300cd44b4422dcc91f944e194f65bdc711ccc2efe32b26ebcf5950e05aac14
MD5 12580daa44ddcb75b820e3a70ab63e3a
BLAKE2b-256 bd3888bb2afc72c72e4a09067aed4e3580636ced3b3a1edec5a342770cdaa50c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page