代码之家  ›  专栏  ›  技术社区  ›  AlexLordThorsen

如何使用Typer库解析日期时间字符串?

  •  0
  • AlexLordThorsen  · 技术社区  · 3 年前

    如果我有一个函数说

    from datetime import datetime
    
    import typer
    
    TODAYS_DATE = datetime.now()
    
    def main(
            s3_bucket: str,
            target_date: Optional[str] = TODAYS_DATE.isoformat(),
            region: str = "us-east-1"):
          """
        pass
    
    if __name__ == "__main__":
        typer.run(main)
    

    如何避免将日期时间强制转换为字符串?

    1 回复  |  直到 3 年前
        1
  •  0
  •   AlexLordThorsen    3 年前

    typer文档没有说明这一点,但事实证明该库足够智能,您可以声明

    from datetime import datetime
    
    import typer
    
    TODAYS_DATE = datetime.now()
    
    def main(
            s3_bucket: str,
            target_date: Optional[datetime] = TODAYS_DATE.isoformat(),
            region: str = "us-east-1"):
          """
        pass
    
    if __name__ == "__main__":
        typer.run(main)
    

    它产生了一个CLI选项,如

    Options:
      --target-date [%Y-%m-%d|%Y-%m-%dT%H:%M:%S|%Y-%m-%d %H:%M:%S]
                                      [default: 2021-11-10 13:29:43.349936]
    

    自动地

    推荐文章