def test_gregorian_to_shamsi(self): self.assertEqual(JalaliDate(date(1988, 5, 4)), JalaliDate(1367, 2, 14)) self.assertEqual(JalaliDate(date(2122, 1, 31)), JalaliDate(1500, 11, 11)) self.assertEqual(JalaliDate(date(2017, 3, 20)), JalaliDate(1395, 12, 30)) self.assertEqual(JalaliDate(date(2000, 1, 1)), JalaliDate(1378, 10, 11)) self.assertEqual(JalaliDate(date(2017, 10, 19)), JalaliDate(1396, 7, 27)) self.assertEqual(JalaliDate(date(2019, 2, 18)), JalaliDate(1397, 11, 29)) self.assertEqual(JalaliDate(date.today()), JalaliDate.today()) self.assertEqual(JalaliDate.to_jalali(1990, 9, 23), JalaliDate(1369, 7, 1)) self.assertEqual(JalaliDate.to_jalali(1990, 9, 23), JalaliDate(1369, 7, 1)) self.assertEqual(JalaliDate.to_jalali(2013, 9, 16), JalaliDate(1392, 6, 25)) self.assertEqual(JalaliDate.to_jalali(2018, 3, 20), JalaliDate(1396, 12, 29))
def dateParser(string): if string != '': s = string.split('-') tarikh = str(JalaliDate.to_jalali(int(s[0]), int(s[1]), int(s[2]))) v = tarikh.split('-') shamsi = str(v[0])+'/'+str(v[1])+'/'+str(v[2]) return shamsi else: return ('')
def test_gregorian_to_shamsi(self): self.assertEqual(JalaliDate(date(1988, 5, 4)), JalaliDate(1367, 2, 14)) self.assertEqual(JalaliDate(date(2122, 1, 31)), JalaliDate(1500, 11, 11)) self.assertEqual(JalaliDate(date(2017, 3, 20)), JalaliDate(1395, 12, 30)) self.assertEqual(JalaliDate(date(2000, 1, 1)), JalaliDate(1378, 10, 11)) self.assertEqual(JalaliDate(date(2017, 10, 19)), JalaliDate(1396, 7, 27)) self.assertEqual(JalaliDate(date(2019, 2, 18)), JalaliDate(1397, 11, 29)) self.assertEqual(JalaliDate.to_jalali(1990, 9, 23), JalaliDate(1369, 7, 1)) self.assertEqual(JalaliDate.to_jalali(1990, 9, 23), JalaliDate(1369, 7, 1)) self.assertEqual(JalaliDate.to_jalali(2013, 9, 16), JalaliDate(1392, 6, 25)) self.assertEqual(JalaliDate.to_jalali(2018, 3, 20), JalaliDate(1396, 12, 29)) self.assertEqual(JalaliDate.to_jalali(2021, 2, 11), JalaliDate(1399, 11, 23)) self.assertEqual(JalaliDate.to_jalali(2021, 7, 16), JalaliDate(1400, 4, 25)) self.assertEqual(JalaliDate(date.today()), JalaliDate.today())
def search_for_a_book(self, book_name, update): results = requests.get( self.tabadol_ketab_search_url.format(book_name=book_name)) results = results.json() books = [] for book_sum in results["result"]["docs"][:10]: book_request = requests.get( "https://book.tabadolketab.com/v1/api/tabaadol-e-ketaab/book/" + book_sum["id"]).json() book_name = book_request.get("name") book_category = (book_request.get("category")).get( "title") if book_request.get("category") is not None else "" book_author = (book_request.get("author")).get( "title") if book_request.get("author") is not None else "" book_publisher = (book_request.get("publisher")).get( "title") if book_request.get("publisher") is not None else "" book_translator = (book_request.get("translator")).get( "title") if book_request.get("translator") is not None else "" book_price = intcomma( int(int(book_request.get("afterDiscount")) / 10)) book_confirm_date = ( book_request.get("confirmDate").split("T")[0]).split("-") try: book_confirm_date = str( JalaliDate.to_jalali(int(book_confirm_date[0]), int(book_confirm_date[1]), int(book_confirm_date[2]))).split("-") book_confirm_date_humanized = f"{book_confirm_date[2]} {MONTH_NAMES_FA[int(book_confirm_date[1])]} {book_confirm_date[0]}" except: book_confirm_date_humanized = "- - -" book_details = f""" نام کتاب: {book_name} دسته بندی: {book_category} نویسنده: {book_author} مترجم: {book_translator} ناشر: {book_publisher} قیمت: {book_price} تاریخ ورود: {book_confirm_date_humanized} """ update.message.reply_text(book_details) books.append({ "book_name": book_name, "book_details": book_details }) return books
async def main(): browser = await launch() page = await browser.newPage() tickers = read_to_dict('./tickers.csv') tickers_list = ['پاسا'] days = 20 for i in range(0, len(tickers_list)): ticker = tickers_list[i] if ticker in tickers: url = 'http://members.tsetmc.com/tsev2/data/InstTradeHistory.aspx?i=' + tickers[ticker] + '&Top=' + str(days) + '&A=1' else: continue await page.goto(url) priceHistory = await page.querySelectorEval('body', 'el => el.innerText.split(";").map(el => { let eel = el.split("@"); return eel; })') df = pd.DataFrame(priceHistory, columns=['Date', 'High', 'Low', 'Close', 'Last', 'First', 'Open', 'TradesValue', 'Volume', 'TradesCount']) df['Close'] = df.Close.astype(float) df.drop(df.tail(1).index,inplace=True) # print(df) df['Date'] = df['Date'].str[:4] + '-' + df['Date'].str[4:6] + '-' + df['Date'].str[6:8] df['Date'] = pd.to_datetime(df['Date'], errors='coerce') df['ts'] = df.Date.values.astype(np.int64) // 10 ** 9 df['JDate'] = df.Date.map(lambda x: JalaliDate.to_jalali(x.year, x.month, x.day)) df.index = df['Date'] del df['Date'], df['ts'] is_bet = is_between_cond([1398, 7, 25], [1398, 8, 3], df) print(df[is_bet]) # save_to_csv('./' + tickers_list[0] + '.csv', df.to_dict()) df = df.sort_values(by='Date', ascending=True) df['returns'] = (df.Close / df.Close.shift(1)) - 1 df = df.dropna() # hist_me(df) await browser.close()
def from_gregorian_date(self,greg_date): return JalaliDate.to_jalali(greg_date).strftime("%Y/%m/%d")
def utc_date_to_jalali(year, month, day): return JalaliDate.to_jalali(year, month, day)