首页 > 解决方案 > 我正在尝试导入用户定义的函数,但出现此错误,我在此代码中做错了什么?

问题描述

我不明白我在这里做错了什么,我之前尝试过相同的代码,但当时它正在运行,但现在它给了我错误。这是我的代码 -

"""
Dummy Data (for tests / mocks)
In actual usage, this data should be loaded from an external source (CSV file, Excel file, Database, etc.)
"""

from ipynb.fs.defs.time_utils import parse_date, parse_time

from_date = parse_date('27-02-2021')
to_date = parse_date('06-03-2021')
from_time = parse_time('09:15:59')
to_time = parse_time('15:25:59')
test_time = parse_time('10:00:59')
multipler = 0.7
B_sl = 20  # Initial CE/PE stop loss in %

在这里我收到这个错误 -

---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-3-25c262b73532> in <module>
      4 """
      5 
----> 6 from ipynb.fs.defs.time_utils import parse_date, parse_time
      7 
      8 from_date = parse_date('27-02-2021')

~\Global_trader\My Codes\Breakout Strategies\time_utils.ipynb in <module>
     23     "\n",
     24     "# Type Aliases\n",
---> 25     "Date = datetime.datetime.date\n",
     26     "Time = datetime.datetime.time\n",
     27     "\n",

NameError: name 'Date' is not definedd

我的 time_utils 文件代码是这样的 -

import datetime
import calendar

from typing import Iterator, Tuple


__all__ = [
    'Date', 'Time',
    'parse_date', 'parse_time',
    'dmy', 'to_dmy',
    'time_diff', 'date_range', 'weekday'
]


# Type Aliases
Date = datetime.date
Time = datetime.time


def weekday(date: Date) -> str:
    """Returns day of week"""
    return calendar.day_name[date.weekday()]


def dmy(day: int, month: int, year: int) -> Date:
    """Shorthand for creating date using date / month / year"""
    return Date(day=day, month=month, year=year)


def to_dmy(date: Date) -> Tuple[int, int, int]:
    return date.day, date.month, date.year


def parse_date(date_str: str) -> Date:
    return datetime.datetime.strptime(date_str, '%d-%m-%Y').date()


def parse_time(time_str: str) -> Time:
    return datetime.datetime.strptime(time_str.strip(), '%H:%M:%S').time()


def time_diff(t1: Time, t2: Time) -> datetime.timedelta:
    """Difference between two times"""
    d = Date(1,1,1)   # some random date
    return datetime.datetime.combine(d,t1) - datetime.datetime.combine(d,t2)


def date_range(from_date: Date, to_date: Date) -> Iterator[Date]:
    """Range of Dates between from_date and to_date, with 1-day intervals"""
    days = (to_date - from_date).days + 1
    return (from_date + datetime.timedelta(days=n) for n in range(days))

请帮助我,我在这里做错了什么。我为其他人尝试了相同的代码,但当时它运行了,但现在它没有运行。

在此处输入图像描述

标签: pythonfunctiondatetimeimportjupyter

解决方案


推荐阅读