async def createCompany(conn: AsyncIOMotorClient, payment: PaymentCompany): date = payment.paymentDate dates = date.split('-') financialYear = fiscalyear.FiscalDate( int(dates[0]), int(dates[1]), int(dates[2])).fiscal_year payment.financialYear = financialYear payment.paymentNumber = await get_payment_number_by_year(conn, financialYear) rows = await conn[database_name][payments_collection_name].insert_one(payment.dict()) data = await get_by_id_companyDetails(conn, rows.inserted_id) return data
def test_contains(self, a, f, g): assert a not in f assert f in g assert fiscalyear.FiscalDateTime(2016, 8, 1, 0, 0, 0) in a assert datetime.datetime(2016, 8, 1, 0, 0, 0) in a assert fiscalyear.FiscalDate(2016, 8, 1) in a assert datetime.date(2016, 8, 1) in a with pytest.raises(TypeError): fiscalyear.FiscalYear(2016) in a
def test_contains(self, a, b, c, d, f): assert b in c assert a not in f assert b in d assert fiscalyear.FiscalDateTime(2015, 10, 1, 0, 0, 0) in a assert datetime.datetime(2015, 10, 1, 0, 0, 0) in a assert fiscalyear.FiscalDate(2015, 10, 1) in a assert datetime.date(2015, 10, 1) in a with pytest.raises(TypeError): "hello world" in a
def test_contains(self, a, b, c, d): assert b in c assert d not in a assert d in b assert fiscalyear.FiscalDateTime(2016, 1, 1, 0, 0, 0) in a assert datetime.datetime(2016, 1, 1, 0, 0, 0) in a assert fiscalyear.FiscalDate(2016, 1, 1) in a assert datetime.date(2016, 1, 1) in a with pytest.raises(TypeError): 'hello world' in a
def test_leap_year(self): assert fiscalyear.FiscalDate(2016, 1, 1).fiscal_day == 93 assert fiscalyear.FiscalDate(2016, 2, 29).fiscal_day == 152 assert fiscalyear.FiscalDate(2017, 3, 1).fiscal_day == 152 assert fiscalyear.FiscalDate(2016, 9, 30).fiscal_day == 366 assert fiscalyear.FiscalDate(2017, 9, 30).fiscal_day == 365 assert fiscalyear.FiscalDate(2018, 9, 30).fiscal_day == 365
async def create(conn: AsyncIOMotorClient, bills: BillMaster): date = bills.billDate dates = date.split('-') financialYear = fiscalyear.FiscalDate(int(dates[0]), int(dates[1]), int(dates[2])).fiscal_year bills.financialYear = financialYear bills.billNumber = await get_bill_number_by_year(conn, financialYear) rows = await conn[database_name][bills_collection_name].insert_one( bills.dict()) for billData in bills.billDetails: stockData = await reduce_stock(conn, billData.stockId, billData.productQuantity) data = await get_by_id(conn, rows.inserted_id) return data
def test_contains(self, a, b, c, f): assert b in c assert a not in f assert fiscalyear.FiscalDateTime(2015, 10, 1, 0, 0, 0) in a assert datetime.datetime(2015, 10, 1, 0, 0, 0) in a assert fiscalyear.FiscalDate(2015, 10, 1) in a assert datetime.date(2015, 10, 1) in a assert b in fiscalyear.FiscalMonth(2016, 1) assert b in fiscalyear.FiscalQuarter(2016, 1) assert b in fiscalyear.FiscalYear(2016) with pytest.raises(TypeError): "hello world" in a
def test_complex(self): # Test defaults day = fiscalyear.FiscalDate(2017, 12, 1) assert day.fiscal_year == 2018 assert day.fiscal_quarter == 1 # Change fiscal year settings fiscalyear.setup_fiscal_calendar("same", 1, 1) assert day.fiscal_year == 2017 assert day.fiscal_quarter == 4 # Restore defaults and re-test fiscalyear.setup_fiscal_calendar("previous", 10, 1) assert day.fiscal_year == 2018 assert day.fiscal_quarter == 1
def c(self): return fiscalyear.FiscalDate(2017, 11, 15)
def b(self): return fiscalyear.FiscalDate(2017, 8, 31)
def a(self): return fiscalyear.FiscalDate(2017, 1, 1)
def test_current(self, mocker): mock_today = mocker.patch.object(fiscalyear.FiscalDate, "today") mock_today.return_value = fiscalyear.FiscalDate(2016, 10, 1) current = fiscalyear.FiscalDay.current() assert current == fiscalyear.FiscalDay(2017, 1)
'Cat': '^[CKG].*at.*', 'Clown': '^[CK]l.*n$', 'Devil': '^D.*(ev|ia).*', 'Dinosaur': '^Dino.*', 'Ghost': '^G.*t$', 'Pirate': '^Pira.*', 'Vampire': '^Vamp.*', 'Werewolf': '^We.*wolf$', 'Zombie': '^Z.*mbi.*' } fiscalyear.START_MONTH = 11 xlsx = pd.ExcelFile("F:/Data/Halloween Costumes.xlsx") df = pd.read_excel(xlsx, sheet_names=1) df['Date'] = df['Date'].apply(lambda x: datetime.strptime(x, '%d/%m/%Y')) df['FiscalYear'] = df['Date'].apply( lambda x: fiscalyear.FiscalDate(x.year, x.month, x.day).fiscal_year) df = df[df['FiscalYear'] >= 2019].copy() df['FiscalYear'] = df['FiscalYear'].apply(lambda x: f'{x} FY Sales') for correct, pattern in costume_pt.items(): df['Costume'] = df['Costume'].replace(to_replace=pattern, value=correct, regex=True) df = df.replace({ 'Country': { 'Indonsia': 'Indonesia', 'Slovnia': 'Slovenia', 'Philippins': 'Philippines', 'Luxmbourg': 'Luxembourg' } }) final = df.melt(id_vars=[c for c in df.columns if not re.search('^Sales', c)],
# Clean up date. # * Split DATE TIME into 2 values # * Coerce Value column to numeric and drop NA rows to exclude missing data # * Get columns for Day, Month and Year from the Date column snow[['Date', 'Time']] = snow['DATE TIME'].str.split(expand=True) snow['VALUE'] = pd.to_numeric(snow['VALUE'], errors='coerce') snow.dropna(subset=['Date', 'VALUE']) snow['Year'] = snow.Date.str.slice(stop=4).astype('int32') snow['Month'] = snow.Date.str.slice(start=4, stop=6).astype('int32') snow['Day'] = snow.Date.str.slice(start=6, stop=8).astype('int32') # Calculate snow year days for plotting using the Fiscal Year calendar # Fiscal Year Day 1 = 9/1, so Month 1 = Sept, etc. snow['SnowYear'] = snow.apply( lambda x: fy.FiscalDate(x['Year'], x['Month'], x['Day']).fiscal_year, axis=1) snow['SnowMonth'] = snow.apply( lambda x: fy.FiscalDate(x['Year'], x['Month'], x['Day']).fiscal_month, axis=1) snow['SnowDay'] = snow.apply( lambda x: fy.FiscalDate(x['Year'], x['Month'], x['Day']).fiscal_day, axis=1) # Get subset of data to plot plotting_columns = [ 'STATION_ID', 'VALUE', 'Date', 'SnowYear', 'SnowMonth', 'SnowDay' ] plot_data = snow[plotting_columns].sort_values( by=['STATION_ID', 'SnowYear', 'SnowMonth', 'SnowDay'])
def in_fiscal_year(date, fiscal_year=None): if fiscal_year is None: fiscal_year = current_fiscal_year() fiscal_date = FY.FiscalDate(date.year, date.month, date.day) return fiscal_date.fiscal_year == fiscal_year
def current_fiscal_year(today=None): today = date.today() if today is None else today return FY.FiscalDate(today.year, today.month, today.day).fiscal_year