Ejemplo n.º 1
0
def test_locale():
    dt = pendulum.datetime(2000, 11, 10, 12, 34, 56, 123456)
    pendulum.set_locale("fr")

    assert pendulum.get_locale() == "fr"

    assert dt.format("MMMM") == "novembre"
    assert dt.date().format("MMMM") == "novembre"
Ejemplo n.º 2
0
def test_locale():
    dt = pendulum.datetime(2000, 11, 10, 12, 34, 56, 123456)
    pendulum.set_locale('fr')

    assert pendulum.get_locale() == 'fr'

    assert dt.format('MMMM') == 'novembre'
    assert dt.date().format('MMMM') == 'novembre'
Ejemplo n.º 3
0
 def tearDown(self):
     pendulum.set_test_now()
     pendulum.set_formatter()
     pendulum.set_locale('en')
     LocalTimezone.set_local_timezone()
     Pendulum.reset_to_string_format()
     Date.reset_to_string_format()
     Time.reset_to_string_format()
     Pendulum.set_transition_rule(Timezone.POST_TRANSITION)
Ejemplo n.º 4
0
    def __init__(self, token, debug=False):
        self._token = token
        self._updater = Updater(token)
        self._debug = debug

        self._session = requests.Session()

        self._init_handlers()
        pendulum.set_locale('ru')
Ejemplo n.º 5
0
def setup():
    pendulum.set_local_timezone(pendulum.timezone("America/Toronto"))

    yield

    pendulum.set_test_now()
    pendulum.set_locale("en")
    pendulum.set_local_timezone()
    pendulum.week_starts_at(pendulum.MONDAY)
    pendulum.week_ends_at(pendulum.SUNDAY)
Ejemplo n.º 6
0
def setup():
    pendulum.set_local_timezone(pendulum.timezone("America/Toronto"))

    yield

    pendulum.set_test_now()
    pendulum.set_locale("en")
    pendulum.set_local_timezone()
    pendulum.week_starts_at(pendulum.MONDAY)
    pendulum.week_ends_at(pendulum.SUNDAY)
Ejemplo n.º 7
0
def get_period_full_label(periodo: str) -> str:
    """Funcion que regresa el mes y el año en la siguiente forma
    (Enero 2020)
    """
    pendulum.set_locale('es')
    year, month = explode(periodo)
    if year and month:
        date = pendulum.datetime(year=year, month=month, day=1)
        return str(date.format('MMMM.YYYY')).replace('.', ' ').capitalize()
    else:
        return None
Ejemplo n.º 8
0
    def test_set_locale_is_global(self):
        dt = pendulum.create(2000, 11, 10, 12, 34, 56, 123456)
        pendulum.set_formatter('alternative')
        pendulum.set_locale('fr')

        self.assertEqual(pendulum.Pendulum.get_locale(), 'fr')
        self.assertEqual(pendulum.Date.get_locale(), 'fr')
        self.assertEqual(pendulum.Time.get_locale(), 'fr')

        self.assertEqual(dt.format('MMMM'), 'novembre')
        self.assertEqual(dt.date().format('MMMM'), 'novembre')
Ejemplo n.º 9
0
    def test_set_locale_can_be_overridden(self):

        dt = pendulum.create(2000, 11, 10, 12, 34, 56, 123456)
        pendulum.set_formatter('alternative')
        pendulum.set_locale('fr')

        pendulum.Pendulum.set_locale('en')
        pendulum.Date.set_locale('en')
        pendulum.Time.set_locale('en')

        self.assertEqual(pendulum.Pendulum.get_locale(), 'en')
        self.assertEqual(pendulum.Date.get_locale(), 'en')
        self.assertEqual(pendulum.Time.get_locale(), 'en')

        self.assertEqual(dt.format('MMMM'), 'November')
        self.assertEqual(dt.date().format('MMMM'), 'November')
Ejemplo n.º 10
0
def test_set_locale_invalid():
    with pytest.raises(ValueError):
        pendulum.set_locale("invalid")
Ejemplo n.º 11
0
pendulum.datetime(2019, 5, 1, tz="Asia/Seoul")

dt = pendulum.local(2019, 5, 1)
print(dt.timezone.name)

now = pendulum.now()
print(now)

naive = pendulum.naive(2019, 5, 1)
print(naive.timezone)

dt = pendulum.parse('2019-05-01T22:00:00')
print(dt)

pendulum.set_locale('ko')
print(pendulum.now().add(years=1).diff_for_humans())

dt = pendulum.parse('2019-05-01T22:00:00')

print(dt.year)
print(dt.month)
print(dt.day)
print(dt.hour)
print(dt.minute)
print(dt.second)
print(dt.microsecond)
print(dt.day_of_week)
print(dt.day_of_year)
print(dt.week_of_month)
print(dt.week_of_year)
Ejemplo n.º 12
0
def 时间_设置语言包(名称="zh"):
    pendulum.set_locale(名称)
Ejemplo n.º 13
0
import datetime

import pendulum

from src.config import config

pendulum.set_locale(name=config["discord"]["interface"]["time_local"])


def duration_readable(seconds: int) -> str:
    """
    Функция для читаемого формата оставшегося времени

    :param seconds: Количество секунд
    :return: Строка с читаемым форматом времени
    """

    return pendulum.duration(seconds=seconds).in_words()


def timedelta_readable(time: datetime.datetime) -> str:
    """
    Функция для читаемого формата разницы времени

    :param time: Время
    :return:
    """

    delta_seconds: float = (datetime.datetime.now() - time).total_seconds()
    return pendulum.now().subtract(
        seconds=int(delta_seconds)).diff_for_humans()
Ejemplo n.º 14
0
from selenium.webdriver import Chrome
from selenium.webdriver.support.ui import WebDriverWait, Select
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import NoSuchElementException
from webdriver_manager.chrome import ChromeDriverManager
from atexit import register
from lxml.html import fromstring
from collections import defaultdict
from json import dump
import pendulum
pendulum.set_locale('de')

now = pendulum.now()
month = now.month
year = now.year

if month == 1:
    SEM = f"{year-1}W"
elif month in {2, 3, 4, 5, 6, 7}:
    SEM = f"{year}S"
else:
    SEM = f"{year}W"

semesters = [SEM, f"{int(SEM[:4])-1}{SEM[-1]}"]


def collapse_whitespace(s):
    return ' '.join(s.split())

Ejemplo n.º 15
0
from datetime import datetime
import pendulum
import redis
from squashbot.utils import previous_days, grouper, markdown_link, custom_xrange as time_range
from kortovnet import KortovNet
from telepot.exception import TelegramError
import gettext
import os

MSK = 'Europe/Moscow'
LOCALE = 'ru_RU'
CHAT_MEMBERS = ['left_chat_member', 'new_chat_member']
TOP_LOCS = 3
TOP_PLAYERS = 3

pendulum.set_locale('ru')
localedir = os.path.join(os.path.abspath(os.path.dirname(__file__)), 'locale')
translate = gettext.translation('squashbot', localedir, fallback=True)
_ = translate.gettext

GameInputStage = enum.Enum(value='GameInputStage',
                           names=[
                               'start', 'date', 'time', 'location',
                               'first_player', 'second_player', 'result',
                               'confirmation'
                           ])


class GameInputHandler(telepot.aio.helper.ChatHandler):
    """Class for handling chat input."""
    def __init__(self, *args, **kwargs):
Ejemplo n.º 16
0
import os
import logging
from functools import lru_cache
from typing import Optional, List, Dict, Any, Text

import pendulum

from wechatpy.work.client import WeChatClient
from wechatpy.work.client.api import WeChatDepartment, WeChatUser, WeChatCalendar, WeChatSchedule

pendulum.set_locale('zh')

WECOM_CORP_ID = os.environ.get('WECOM_CORP_ID')
WECOM_CORP_SECRET = os.environ.get('WECOM_CORP_SECRET')

access_token = None

calendar_id = os.environ.get('WECOM_CALENDAR_ID')
calendar_user_id = os.environ.get('WECOM_CALENDAR_USER_ID')

logger = logging.getLogger(__name__)

client = WeChatClient(WECOM_CORP_ID,
                      WECOM_CORP_SECRET,
                      access_token=access_token)


@lru_cache(maxsize=10)
def get_all_calendar_schedules() -> List[Dict[Text, Any]]:
    result = []
    offset = 0
Ejemplo n.º 17
0
import pendulum
pendulum.set_locale('ja')
import requests
from bs4 import BeautifulSoup
import wikipedia


class Scraper:
    """
    Parse HTML file given URL.

    Parameters
    ----------
        response: class:`requests.models.Response` object.
        soup: class:`bs4.BeautifulSoup` object. 
    """
    def __init__(self, response=None, soup=None):
        self.response = None
        self.soup = None

    def get(self, url):
        """Create BeautifulSoup object from a responded HTML

        Parameters
        ----------
        url: str
            URL of a page that is to be parsed.

        Returns
        -------
            None
Ejemplo n.º 18
0
def test_set_locale_malformed_locale(locale):
    pendulum.set_locale(locale)

    pendulum.set_locale("en")
Ejemplo n.º 19
0
 def tearDown(self):
     pendulum.set_locale('en')
Ejemplo n.º 20
0
 def setUp(self):
     pendulum.set_locale(self.locale)
Ejemplo n.º 21
0
def setup():
    pendulum.set_locale('zh')
    callback.CALLBACKS_ON_SCRIPT_LOAD.append(reset_warning_history)
    callback.CALLBACKS_ON_SCRIPT_LOAD.append(warn_missing_frames)
    callback.CALLBACKS_ON_SCRIPT_LOAD.append(warn_mtime)
    callback.CALLBACKS_ON_SCRIPT_SAVE.append(warn_missing_frames)
Ejemplo n.º 22
0
from django.shortcuts import render
from .models import Calendario, Docente
# Usando no examplo
from django.http import HttpResponseRedirect
from .forms import PeriodoForm, NameForm

# Usado nos testes
from django.http import HttpResponse
import pendulum
pendulum.set_locale('pt-br')
from tempfile import NamedTemporaryFile
from openpyxl import Workbook
from openpyxl import load_workbook, Workbook
import openpyxl
from openpyxl.styles import PatternFill, Border, Side, Alignment, Protection, Font, Fill
from openpyxl.cell import Cell
from openpyxl.drawing.image import Image
import datetime
import pendulum
pendulum.set_locale('pt-br')
from django.conf.urls.static import static
from django.templatetags.static import static
from annoying.functions import get_object_or_None

# Para garantir acesso a imagens em produção/heroku
from django.contrib.staticfiles import finders


def come(request):
    def dsc(dia, mes, ano):
        date = pendulum.date(ano, mes, dia)
Ejemplo n.º 23
0
def main():
    import sys
    import logging
    import logging.config
    logger = logging.getLogger()
    MIN_PYTHON = (3, 6)
    if sys.version_info < MIN_PYTHON:
        sys.exit("Python %s.%s or later is required.\n" % MIN_PYTHON)
    import os
    IS_VENV = os.getenv('VIRTUAL_ENV') is not None

    import etm.__version__ as version
    etm_version = version.version
    etmdir = os.getcwd()

    loglevel = 2 # info
    log_levels = [str(x) for x in range(1, 6)]
    if len(sys.argv) > 1 and sys.argv[1] in log_levels:
        loglevel = sys.argv.pop(1)
    if len(sys.argv) > 1 and os.path.isdir(sys.argv[1]):
        etmdir = sys.argv.pop(1)

    logdir = os.path.normpath(os.path.join(etmdir, 'logs'))
    if not os.path.isdir(logdir):
        os.makedirs(logdir)

    backdir = os.path.normpath(os.path.join(etmdir, 'backups'))
    if not os.path.isdir(backdir):
        os.makedirs(backdir)

    import etm.options as options
    settings = options.Settings(etmdir).settings
    setup_logging = options.setup_logging
    setup_logging(loglevel, logdir)
    # in model, view, ...,
    # logger = logging.getLogger()
    # will acquire this logger!

    logger.info(f"running in a virtual environment: {IS_VENV}")

    secret = settings.get('secret')
    import pendulum
    locale = settings.get('locale', None)
    if locale:
        pendulum.set_locale(locale)
    today = pendulum.today()
    day = today.end_of('week')  # Sunday
    WA = {i: day.add(days=i).format('ddd')[:2] for i in range(1, 8)}


    import etm.ical as ical
    import etm.data as data
    data.secret = secret
    from etm.data import Mask
    dbfile = os.path.normpath(os.path.join(etmdir, 'db.json'))
    cfgfile = os.path.normpath(os.path.join(etmdir, 'cfg.yaml'))
    ETMDB = data.initialize_tinydb(dbfile)
    DBITEM = ETMDB.table('items', cache_size=None)
    DBARCH = ETMDB.table('archive', cache_size=None)

    from etm.model import about
    from etm.model import import_file
    import etm.model as model
    model.etm_version = etm_version
    model.secret = secret
    model.data = data
    model.ical = ical
    model.Mask = Mask
    model.WA = WA
    model.ETMDB = ETMDB
    model.DBITEM = DBITEM
    model.DBARCH = DBARCH
    model.settings = settings
    # we put settings into the model namespace so model.Dataview will have it
    dataview = model.DataView(etmdir)
    datetime_calculator = model.datetime_calculator
    Item = model.Item
    item = model.Item(dbfile)
    format_time = model.format_time
    format_datetime = model.format_datetime
    format_duration = model.format_duration
    # since dataview calls schedule it will also have settings
    completions = dataview.completions
    expansions = settings["expansions"]
    if expansions:
        for x in expansions:
            completions.append(f"@x {x}")
    style = dataview.settings["style"]
    parse_datetime = model.parse_datetime

    logger.info(f"initialized TinyDB using {dbfile}")


    import etm.view as view
    view.cfgfile = cfgfile
    view.model = model
    view.item = item
    view.import_file = import_file
    view.etmdir = etmdir
    view.datetime_calculator = datetime_calculator
    view.about = about
    view.wrap = model.wrap
    view.settings = settings
    view.format_time = format_time
    view.format_datetime = format_datetime
    view.format_duration = format_duration
    view.parse_datetime = parse_datetime
    view.ETMDB = ETMDB
    view.DBITEM = DBITEM
    view.DBARCH = DBARCH

    view.dataview = dataview
    view.completions = completions
    view.expansions = expansions
    view.terminal_style = style
    logger.info(f"setting terminal_style: {style}")


    if len(sys.argv) > 1:
        if sys.argv[1] == 'model':
            logger.info(f"calling model doctest with etmdir: {etmdir}, argv: {sys.argv}")
            import doctest
            doctest.testmod(model)
        elif sys.argv[1] == 'view':
            logger.info(f"calling view doctest with etmdir: {etmdir}, argv: {sys.argv}")
            import doctest
            doctest.testmod(view)
        elif sys.argv[1] == 'data':
            logger.info(f"calling data doctest with etmdir: {etmdir}, argv: {sys.argv}")
            import doctest
            doctest.testmod(data)
        else:
            logger.info(f"calling data.main with etmdir: {etmdir}, argv: {sys.argv}")
            model.main(etmdir, sys.argv)

    else:
        logger.info(f"calling view.main with etmdir: {etmdir}")
        from etm.view import main
        main(etmdir)
Ejemplo n.º 24
0
import pandas as pd
import pendulum
from settings import SOURCE_FILES, SEP, ENCODING, TRANSFORMED_FILES

pendulum.set_locale('fr')


def calcul_age(date):
    date = date.split(' ')[0]
    maxDate = pendulum.datetime(1998, 1, 1)
    date_pendulum = pendulum.parse(date)
    return maxDate.diff(date_pendulum).in_years()


def tranche_age(age):
    if age < 35:
        return 'Moins de 35 ans'
    elif 35 <= age <= 50:
        return '35 - 50 ans'
    else:
        return 'Plus de 50 ans'


def main():
    df_employes = pd.read_csv(SOURCE_FILES['employes'],
                              sep=SEP,
                              encoding=ENCODING)

    dim_employes = df_employes.drop(
        ['HomePhone', 'Extension', 'Photo', 'Notes', 'ReportsTo', 'PhotoPath'],
        axis=1)
Ejemplo n.º 25
0
from pendulum import set_locale, now

set_locale('pt-br')
n = now('UTC')

print(n.add(years=2).diff_for_humans())