コード例 #1
0
def date_week(match, other=None):
    data = {k: int(v or 1) for k, v in match.groupdict().items()}
    year = data['year']
    week = data['week']
    day = data['day']

    ordinal = week * 7 + day - ((date_(year, 1, 4).weekday() + 1) + 3)
    if ordinal < 1:
        ordinal += days_in_year(year - 1)
        year -= 1
    elif ordinal > days_in_year(year):
        ordinal -= days_in_year(year)
        year += 1

    return date_(year, 1, 1) + timedelta(days=(ordinal - 1))
コード例 #2
0
def get_row_col(data,state,date):
	col=data.index(state.lower())
	date1=[]
	date1=date.split("/")
	d1=date_(int(str(date1[2])),int(str(date1[1])),int(str(date1[0])))
	row=(d1-d0).days
	row+=1

	return row,col
コード例 #3
0
ファイル: manage.py プロジェクト: JPRbrs/raspi-wStation
def create_all_past_days():
    today = date.today()
    from datetime import date as date_
    first_day = date_(2017, 9, 7)

    day = first_day
    while day < today:
        store_day(day.strftime('%Y-%m-%d'))
        day += timedelta(days=1)
コード例 #4
0
def date(match, other=None):
    data = {k: int(v) for k, v in match.groupdict().items() if v}
    if other:
        if isinstance(other, datetime):
            return other.date().replace(**data)
        elif isinstance(other, date_):
            return other.replace(**data)
        else:
            raise ValueError('other must be datetime or date object.')
    else:
        return date_(data.get('year', 1), data.get('month', 1), data.get('day', 1))
コード例 #5
0
ファイル: fox.py プロジェクト: alanjordan101/acw_battle_data
def load_forces(src):
    """ Load data into fox_forces """
    session = model.Session()
    for rowid, row in enumerate(csv2.DictReader(src, delimiter='\t')):
        del row['cwsac']
        for x in ['killed', 'wounded', 'missing', 'casualties']:
            if row[x]:
                row[x] = parse_human_integer(row[x])
        for x in ['start', 'end']:
            dateparts = [x + i for i in ('y', 'm', 'd')]
            row['%s_date' % x] = date_(*[int(row[y]) for y in dateparts])
            for y in dateparts:
                del row[y]
        row['aggrow'] = (row['aggrow'] == '1')
        milforce = model.FoxForce(battle = rowid, **row)
        session.add(milforce)
    session.commit()
コード例 #6
0
    async def zipCode(self,
                      zipCode: str,
                      *,
                      date: Optional[Union[date_, datetime, str]] = None,
                      distance: Optional[int] = None) -> list:
        '''Request current observation for zip code'''
        params: dict = dict(zipCode=zipCode)
        if date and isinstance(date, str):
            y, m, d = date.split('-')
            params['date'] = date_(int(y), int(m), int(d)).isoformat()
        elif date and isinstance(date, datetime):
            params['date'] = date.date().isoformat()
        elif date and isinstance(date, date_):
            params['date'] = date.isoformat()
        if distance:
            params['distance'] = distance

        return await self._request('aq/forecast/zipCode', params=params)
コード例 #7
0
    async def latLong(
        self,
        latitude: Optional[Union[float, str]] = None,
        longitude: Optional[Union[float, str]] = None,
        *,
        date: Optional[Union[date_, datetime, str]] = None,
        distance: Optional[int] = None,
    ) -> None:
        '''Request current observation for latitude/longitude'''
        params: dict = dict(
            latitude=str(latitude),
            longitude=str(longitude),
        )
        if date and isinstance(date, str):
            y, m, d = date.split('-')
            params['date'] = date_(int(y), int(m), int(d)).isoformat()
        elif date and isinstance(date, datetime):
            params['date'] = date.date().isoformat()
        elif date and isinstance(date, date_):
            params['date'] = date.isoformat()
        if distance:
            params['distance'] = distance

        return await self._request('aq/forecast/latLong', params=params)
コード例 #8
0
ファイル: numbers.py プロジェクト: marcosptf/fedora
def get_territory_currencies(territory, start_date=None, end_date=None,
                             tender=True, non_tender=False,
                             include_details=False):
    """Returns the list of currencies for the given territory that are valid for
    the given date range.  In addition to that the currency database
    distinguishes between tender and non-tender currencies.  By default only
    tender currencies are returned.

    The return value is a list of all currencies roughly ordered by the time
    of when the currency became active.  The longer the currency is being in
    use the more to the left of the list it will be.

    The start date defaults to today.  If no end date is given it will be the
    same as the start date.  Otherwise a range can be defined.  For instance
    this can be used to find the currencies in use in Austria between 1995 and
    2011:

    >>> from datetime import date
    >>> get_territory_currencies('AT', date(1995, 1, 1), date(2011, 1, 1))
    ['ATS', 'EUR']

    Likewise it's also possible to find all the currencies in use on a
    single date:

    >>> get_territory_currencies('AT', date(1995, 1, 1))
    ['ATS']
    >>> get_territory_currencies('AT', date(2011, 1, 1))
    ['EUR']

    By default the return value only includes tender currencies.  This
    however can be changed:

    >>> get_territory_currencies('US')
    ['USD']
    >>> get_territory_currencies('US', tender=False, non_tender=True,
    ...                          start_date=date(2014, 1, 1))
    ['USN', 'USS']

    .. versionadded:: 2.0

    :param territory: the name of the territory to find the currency fo
    :param start_date: the start date.  If not given today is assumed.
    :param end_date: the end date.  If not given the start date is assumed.
    :param tender: controls whether tender currencies should be included.
    :param non_tender: controls whether non-tender currencies should be
                       included.
    :param include_details: if set to `True`, instead of returning currency
                            codes the return value will be dictionaries
                            with detail information.  In that case each
                            dictionary will have the keys ``'currency'``,
                            ``'from'``, ``'to'``, and ``'tender'``.
    """
    currencies = get_global('territory_currencies')
    if start_date is None:
        start_date = date_.today()
    elif isinstance(start_date, datetime_):
        start_date = start_date.date()
    if end_date is None:
        end_date = start_date
    elif isinstance(end_date, datetime_):
        end_date = end_date.date()

    curs = currencies.get(territory.upper(), ())
    # TODO: validate that the territory exists

    def _is_active(start, end):
        return (start is None or start <= end_date) and \
               (end is None or end >= start_date)

    result = []
    for currency_code, start, end, is_tender in curs:
        if start:
            start = date_(*start)
        if end:
            end = date_(*end)
        if ((is_tender and tender) or
                (not is_tender and non_tender)) and _is_active(start, end):
            if include_details:
                result.append({
                    'currency': currency_code,
                    'from': start,
                    'to': end,
                    'tender': is_tender,
                })
            else:
                result.append(currency_code)

    return result
コード例 #9
0
def get_territory_currencies(territory, start_date=None, end_date=None,
                             tender=True, non_tender=False,
                             include_details=False):
    """Returns the list of currencies for the given territory that are valid for
    the given date range.  In addition to that the currency database
    distinguishes between tender and non-tender currencies.  By default only
    tender currencies are returned.

    The return value is a list of all currencies roughly ordered by the time
    of when the currency became active.  The longer the currency is being in
    use the more to the left of the list it will be.

    The start date defaults to today.  If no end date is given it will be the
    same as the start date.  Otherwise a range can be defined.  For instance
    this can be used to find the currencies in use in Austria between 1995 and
    2011:

    >>> from datetime import date
    >>> get_territory_currencies('AT', date(1995, 1, 1), date(2011, 1, 1))
    ['ATS', 'EUR']

    Likewise it's also possible to find all the currencies in use on a
    single date:

    >>> get_territory_currencies('AT', date(1995, 1, 1))
    ['ATS']
    >>> get_territory_currencies('AT', date(2011, 1, 1))
    ['EUR']

    By default the return value only includes tender currencies.  This
    however can be changed:

    >>> get_territory_currencies('US')
    ['USD']
    >>> get_territory_currencies('US', tender=False, non_tender=True,
    ...                          start_date=date(2014, 1, 1))
    ['USN', 'USS']

    .. versionadded:: 2.0

    :param territory: the name of the territory to find the currency for.
    :param start_date: the start date.  If not given today is assumed.
    :param end_date: the end date.  If not given the start date is assumed.
    :param tender: controls whether tender currencies should be included.
    :param non_tender: controls whether non-tender currencies should be
                       included.
    :param include_details: if set to `True`, instead of returning currency
                            codes the return value will be dictionaries
                            with detail information.  In that case each
                            dictionary will have the keys ``'currency'``,
                            ``'from'``, ``'to'``, and ``'tender'``.
    """
    currencies = get_global('territory_currencies')
    if start_date is None:
        start_date = date_.today()
    elif isinstance(start_date, datetime_):
        start_date = start_date.date()
    if end_date is None:
        end_date = start_date
    elif isinstance(end_date, datetime_):
        end_date = end_date.date()

    curs = currencies.get(territory.upper(), ())
    # TODO: validate that the territory exists

    def _is_active(start, end):
        return (start is None or start <= end_date) and \
               (end is None or end >= start_date)

    result = []
    for currency_code, start, end, is_tender in curs:
        if start:
            start = date_(*start)
        if end:
            end = date_(*end)
        if ((is_tender and tender) or
                (not is_tender and non_tender)) and _is_active(start, end):
            if include_details:
                result.append({
                    'currency': currency_code,
                    'from': start,
                    'to': end,
                    'tender': is_tender,
                })
            else:
                result.append(currency_code)

    return result
コード例 #10
0
import GetOldTweets3 as got
import pandas as pd
import tweepy
from datetime import date as date_
import requests 
import csv

d0 = date_(2020, 3, 14) # date representing initial date from which data is there for corona cases

region=["KL","MH","RJ","KA","GA","MP","UP","GJ","TN","TS","BH","JK","PY","HR","AP","WB","CT","OR","JH","AS","HP","NL","SK","MN","AR","TR","ME","MI","UT"] #statecode corresponding to particular coordinates and radius
coordinates=["10.8505,76.2711","19.7515,75.7319","27.0238,74.2179","15.3173,75.7139","15.2993,74.1240","22.9734,78.6569","28.8467,80.9462","22.2587,71.1924","11.1271,78.6569","18.1124,79.0193","25.0961,85.3131","33.7782,76.5762","31.1471,75.3412","29.0588,76.0856","15.9129,79.7400","22.9868,87.8550","21.2787,81.8661","20.9517,85.0985","23.6102,85.2799","26.2006,92.9376","31.1048,77.1734","26.1584,94.5624","27.5330,88.5122","24.6637,93.9063","28.2180,94.7278","23.9408,91.9882","25.4670,91.3662","23.1645,92.9376","30.0668,79.0193"]
radius=["111.22","312.97","330.05","247.08","34.33","313.29","278.28","249.79","203.47","188.88","173.12","115.95","126.61","118.63","227.76","168.07","207.44","222.62","159.29","158.01","133.12","72.64","47.52","84.30","163.26","57.77","84.49","81.92","130.47"]

consumer_key="HBphkAktZUCXnzsETAL2DZDZ5"
consumer_secret="RVI25oLDDIHnwdlDTetMKkreG40tM0JLESP2rtMvjMr3SvbeQS"
access_token="1249603598545113089-JBOA1Bg2drujYFJbXL2ODAeL8lWX9v"
access_token_secret="TBZ2t8xOoHvdL2tuFArMsQrcjIFBOn33IO1v7Bs1FGP5r"

auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)

f=open("dataset_actual.csv","w", encoding='utf-8')
w = csv.writer(f,lineterminator='\n')
data = pd.read_csv('data.csv', sep=',', header=None) #daily increase in corona cases dataset

def get_row_col(data,state,date):
	col=data.index(state.lower())
	date1=[]
	date1=date.split("/")
	d1=date_(int(str(date1[2])),int(str(date1[1])),int(str(date1[0])))
コード例 #11
0
ファイル: dyer.py プロジェクト: alanjordan101/acw_battle_data
def load_from_xml(source):
    session = model.Session()
    context = iterparse(source, events=("start", "end", "start-ns"))
    root = None
    state = None
    nevent = 1
    for event, elem in context:
        if event == "start":
            if elem.tag == "div1" and elem.get('type') == "state":
                state = elem.get("n")
            elif elem.tag == "div2" and elem.get('type') == "year":
                year = elem.get("n")
        elif event == "end":
            ## Process a div3
            if elem.tag == "div3" and elem.get('ana') == "interp-event":
                head = elem.find("head")
                ## Parse Date
                startDate = None
                endDate = None
                date = head.find("date")
                if date is not None:
                    date_value = date.get("value")
                    if re.match("186[1-5]-00", date_value) is not None:
                        yyyy = int(date_value[:4])
                        if date.text == "Jan. to April":
                            startDate = date_(yyyy, 1, 1)
                            endDate = date_(yyyy, 4, 30)
                        else:
                            for k, v in _months.iteritems():
                                if date.text.startswith(k):
                                    startDate = date_(yyyy, v, 1)
                                    if v is not 12:
                                        endDate = date_(yyyy, v + 1, 1) - timedelta(1)
                                    else:
                                        endDate = date_(yyyy, 12, 31)
                                    break
                    else:
                        startDate = datetime_.strptime(date_value,
                                                       "%Y-%m-%d").date()
                        endDate = startDate
                elif head.find("dateRange") is not None:
                    date_range = head.find("dateRange")
                    if date_range.text == "Feb. 14-29":
                        startDate = date_(1863, 2, 14)
                        endDate = date_(1863, 2, 28)
                    elif date_range.text == "Feb 6-8":
                        startDate = date_(1864, 2, 6)
                        endDate = date_(1864, 2, 8)
                    else:
                        startDate = datetime_.strptime(date_range.get("from"),
                                                   "%Y-%m-%d").date()
                        endDate = datetime_.strptime(date_range.get("to"),
                                                 "%Y-%m-%d").date()
                # Event type
                event_type = head.findtext("rs")
                ## head_text
                event =  tostring(head, encoding="utf8", method="text")
                # Text
                text = elem.findtext("p")
                ## Casualties
                losses = parse_losses(text)
                
                #print nevent, state, year, startDate, endDate, event_type
                session.add(model.DyerBattle(battle = nevent,
                                             event_type = unicode(event_type),
                                             state = unicode(STATES[state]),
                                             year = year,
                                             battle_name = unicode(event, 'utf-8'),
                                             start_date = startDate,
                                             end_date = endDate,
                                             text = unicode(text),
                                             killed = losses['killed'],
                                             wounded = losses['wounded'],
                                             cap_missing = losses['capmiss'],
                                             missing = losses['missing'],
                                             casualties = losses['total']
                                             ))
                nevent += 1
                elem.clear()
    session.commit()
コード例 #12
0
def test_date():
    assert parsers.date('2005-01-01') == parsers.date('2004-W53-6')  
    assert parsers.date('2005-01-02') == parsers.date('2004-W53-7')
    assert parsers.date('2005-12-31') == parsers.date('2005-W52-6')
    assert parsers.date('2007-01-01') == parsers.date('2007-W01-1')
    assert parsers.date('2007-12-30') == parsers.date('2007-W52-7')
    assert parsers.date('2007-12-31') == parsers.date('2008-W01-1')
    assert parsers.date('2008-01-01') == parsers.date('2008-W01-2')
    assert parsers.date('2008-12-28') == parsers.date('2008-W52-7')
    assert parsers.date('2008-12-29') == parsers.date('2009-W01-1')
    assert parsers.date('2008-12-30') == parsers.date('2009-W01-2')
    assert parsers.date('2008-12-31') == parsers.date('2009-W01-3')
    assert parsers.date('2009-01-01') == parsers.date('2009-W01-4')
    assert parsers.date('2009-12-31') == parsers.date('2009-W53-4')
    assert parsers.date('2010-01-01') == parsers.date('2009-W53-5')
    assert parsers.date('2010-01-02') == parsers.date('2009-W53-6')
    assert parsers.date('2010-01-03') == parsers.date('2009-W53-7')
    assert parsers.date('2008-W39-6') == date_(2008, 9, 27)
    assert parsers.date('2008W396') == date_(2008, 9, 27)
    assert parsers.date('2016W431') == date_(2016, 10, 24)
    assert parsers.date('2016-W43-1') == date_(2016, 10, 24)
    assert parsers.date('2015-W30-4') == date_(2015, 7, 23)
    assert parsers.date('1981-095') == date_(1981, 4, 5)
    assert parsers.date('1981095') == date_(1981, 4, 5)
    assert parsers.date('1981-04-05') == date_(1981, 4, 5)
    assert parsers.date('19810405') == date_(1981, 4, 5)
    assert parsers.date('--04-03') == date_(1, 4, 3)
    assert parsers.date('--1001') == date_(1, 10, 1)

    with pytest.raises(ValueError):
        parsers.date('2008-W396')

    with pytest.raises(ValueError):
        parsers.date('2008W39-6')

    with pytest.raises(ValueError):
        parsers.date('198195')

    with pytest.raises(ValueError):
        parsers.date('1981-0405')

    with pytest.raises(ValueError):
        parsers.date('198104-05')
コード例 #13
0
def xml_to_csv(source, writer, engagement_types):
    context = iterparse(source, events=("start", "end", "start-ns"))
    state = None
    nevent = 1
    for event, elem in context:
        if event == "start":
            if elem.tag == "div1" and elem.get('type') == "state":
                state = elem.get("n")
            elif elem.tag == "div2" and elem.get('type') == "year":
                year = elem.get("n")
        elif event == "end":
            ## Process a div3
            if elem.tag == "div3" and elem.get('ana') == "interp-event":
                head = elem.find("head")
                ## Parse Date
                if nevent in MISSING_DATES:
                    date = MISSING_DATES[nevent]
                    startDate = date['start_date']
                    try:
                        endDate = date['end_date']
                    except KeyError:
                        endDate = startDate
                else:
                    startDate = None
                    endDate = None
                    date = head.find("date")
                    if date is not None:
                        date_value = date.get("value")
                        if re.match("186[1-5]-00", date_value) is not None:
                            yyyy = int(date_value[:4])
                            if date.text == "Jan. to April":
                                startDate = date_(yyyy, 1, 1)
                                endDate = date_(yyyy, 4, 30)
                            else:
                                for k, v in _months.items():
                                    if date.text.startswith(k):
                                        startDate = date_(yyyy, v, 1)
                                        if v is not 12:
                                            endDate = date_(yyyy, v + 1, 1) - timedelta(1)
                                        else:
                                            endDate = date_(yyyy, 12, 31)
                                        break
                        else:
                            startDate = datetime_.strptime(date_value,
                                                           "%Y-%m-%d").date()
                            endDate = startDate
                    elif head.find("dateRange") is not None:
                        date_range = head.find("dateRange")
                        startDate = datetime_.strptime(date_range.get("from"),
                                                   "%Y-%m-%d").date()
                        endDate = datetime_.strptime(date_range.get("to"),
                                                 "%Y-%m-%d").date()
                # Event type

                if nevent in MISSING_EVENTS:
                    event_type = MISSING_EVENTS[nevent]
                else:
                    event_type = engagement_types[head.findtext("rs")]
                ## head_text
                event = tostring(head, method = "text", encoding = 'utf-8').\
                    decode('utf-8')
                # Text
                text = elem.findtext("p").strip()
                ## Casualties
                losses = parse_losses(text)

                #print nevent, state, year, startDate, endDate, event_type
                data = {'battle_id' : nevent,
                        'event_type' : event_type,
                        'state' :STATES[state],
                        'year' : year,
                        'battle_name' : event,
                        'start_date' : startDate,
                        'end_date' : endDate,
                        'text' : text.strip(),
                        'casualties' : losses['kwm'],
                        'killed' : losses['k'],
                        'wounded' : losses['w'],
                        'killed_wounded' : losses['kw'],
                        'missing_captured' : losses['m']
                        }
                writer.writerow(data)
                nevent += 1
コード例 #14
0
def date_ordinal(match, other=None):
    data = {k: int(v) for k, v in match.groupdict().items() if v}
    days = (date_(data.get('year', 1), 1, 1) - date_(1, 1, 1)).days
    return date_.fromordinal(days + data.get('day', 0))
コード例 #15
0
ファイル: dyer.py プロジェクト: alanjordan101/acw_battle_data
def xml_to_csv(source, writer):
    context = iterparse(source, events=("start", "end", "start-ns"))
    state = None
    nevent = 1
    for event, elem in context:
        if event == "start":
            if elem.tag == "div1" and elem.get('type') == "state":
                state = elem.get("n")
            elif elem.tag == "div2" and elem.get('type') == "year":
                year = elem.get("n")
        elif event == "end":
            ## Process a div3
            if elem.tag == "div3" and elem.get('ana') == "interp-event":
                head = elem.find("head")
                ## Parse Date
                startDate = None
                endDate = None
                date = head.find("date")
                if date is not None:
                    date_value = date.get("value")
                    if re.match("186[1-5]-00", date_value) is not None:
                        yyyy = int(date_value[:4])
                        if date.text == "Jan. to April":
                            startDate = date_(yyyy, 1, 1)
                            endDate = date_(yyyy, 4, 30)
                        else:
                            for k, v in _months.items():
                                if date.text.startswith(k):
                                    startDate = date_(yyyy, v, 1)
                                    if v is not 12:
                                        endDate = date_(yyyy, v + 1, 1) - timedelta(1)
                                    else:
                                        endDate = date_(yyyy, 12, 31)
                                    break
                    else:
                        startDate = datetime_.strptime(date_value,
                                                       "%Y-%m-%d").date()
                        endDate = startDate
                elif head.find("dateRange") is not None:
                    date_range = head.find("dateRange")
                    if date_range.text == "Feb. 14-29":
                        startDate = date_(1863, 2, 14)
                        endDate = date_(1863, 2, 28)
                    elif date_range.text == "Feb 6-8":
                        startDate = date_(1864, 2, 6)
                        endDate = date_(1864, 2, 8)
                    else:
                        startDate = datetime_.strptime(date_range.get("from"),
                                                   "%Y-%m-%d").date()
                        endDate = datetime_.strptime(date_range.get("to"),
                                                 "%Y-%m-%d").date()
                # Event type
                event_type_tmp = head.findtext("rs")
                if event_type_tmp in ENGAGEMENT_TYPES:
                    event_type = ENGAGEMENT_TYPES[event_type_tmp]
                else:
                    if nevent == 4319:
                        event_type = "Reoccupation" # Re-occupation of New Madrid
                    elif nevent == 6348:
                        event_type = "Reopening" # Oct. 26-29: Re-opening, Tennessee River
                    else:
                        event_type = ""
                ## head_text
                event = tostring(head, method = "text", encoding = 'utf-8').decode('utf-8')
                # Text
                text = elem.findtext("p").strip()
                ## Casualties
                losses = parse_losses(text)
                
                #print nevent, state, year, startDate, endDate, event_type
                data = {'battle' : nevent,
                        'event_type' : event_type,
                        'state' :STATES[state],
                        'year' : year,
                        'battle_name' : event,
                        'start_date' : startDate,
                        'end_date' : endDate,
                        'text' : text.strip(),
                        'killed' : losses['killed'],
                        'wounded' : losses['wounded'],
                        'cap_missing' : losses['capmiss'],
                        'missing' : losses['missing'],
                        'casualties' : losses['total']
                        }
                writer.writerow(data)
                nevent += 1