【动态更新】弃用deprecated登记

2023-10-30

由于各项目代码更新频率不一致,导致项目中存在已弃用或即将弃用的方法,故在此记录一下,方便查找,
以下的时间并非弃用时间,仅代表我发现的时间


SQLAlchemy:

2022-04-29更新

警告内容:

SADeprecationWarning: The Engine.table_names() method is deprecated and will be removed in a future release.  Please refer to Inspector.get_table_names(). (deprecated since: 1.4)

调整方案:

tables_list = engine.table_names()

# 改为
from sqlalchemy import inspect

insp = inspect(engine)
tables_list = insp.get_table_names()

2023-02-10更新

警告内容:

AttributeError: 'Engine' object has no attribute 'execute'

自SQLAlchemy 2.0 开始变化
调整方案:

engine.execute(stmt)

# 改为
with engine.connect() as conn:
    result = conn.execute(stmt)
    conn.commit()

参考:https://stackoverflow.com/a/75316945

2023-02-23更新

警告内容:

'OptionEngine' object has no attribute 'execute'

自SQLAlchemy 2.0 开始变化
调整方案:

df = pd.read_sql_query(sql, engine)

# 改为
from sqlalchemy import text

df = pd.DataFrame(engine.connect().execute(text(sql)))

参考:https://stackoverflow.com/a/75309321

2023-03-28更新

LegacyCursorResult弃用

# LegacyCursorResult弃用
sqlalchemy.engine.cursor.LegacyCursorResult
# 改为
sqlalchemy.engine.cursor.CursorResult

2023-06-27更新

2.0开始,需要在SQL语句外用text()方法包裹才能执行

AttributeError: 'str' object has no attribute '_execute_on_connection'
session.execute('DELETE FROM table')
# 改为
from sqlalchemy import text

session.execute(text('DELETE FROM table'))

2023-06-29更新

2.0开始,表的元数据映射有一些变化

metadata = MetaData(engine)
table = Table('table_name', metadata, autoload=True)

报错:

expected schema argument to be a string, got <class 'sqlalchemy.engine.base.Engine'>.

改为

# 多线程下可复用metadata对象,而不需要重复创建
metadata = MetaData()
metadata.reflect(bind=engine)

table = Table('table_name', metadata, autoload=True)

第二种:

# 多线程下可复用metadata对象,而不需要重复创建
metadata = MetaData()

table = Table('table_name', metadata, autoload_with=engine)

其中第一种方式会映射所有表的元数据,耗时会比较长,而且数据库中表变化后,需要重新映射;
第二种方法是只映射某个表,所以效率更高一些。
两种方式各有优劣,比如如果数据库中表相对固定,更推荐第一种方式,否则推荐第二种

2023-07-25更新

/app/module/impalapi.py:38: SAWarning: Dialect impala:impala will not make use of SQL compilation caching as it does not set the 'supports_statement_cache' attribute to ``True``.  This can have significant performance implications including some performance degradations in comparison to prior SQLAlchemy versions.  Dialect maintainers should seek to set this attribute to True after appropriate development and testing for SQLAlchemy 1.4 caching support.   Alternatively, this attribute may be set to False which will disable this warning. (Background on this warning at: https://sqlalche.me/e/20/cprf)
from impala.sqlalchemy import ImpalaDialect

ImpalaDialect.import_dbapi = ImpalaDialect.dbapi
ImpalaDialect.supports_statement_cache = False

参考:https://stackoverflow.com/questions/72190865/snowflake-sqlalchemy-supports-statement-cache-warning

Pandas

2022-04-29更新

警告内容:

FutureWarning: The frame.append method is deprecated and will be removed from pandas in a future version. Use pandas.concat instead.

调整方案:

df = df.append(df_table)

# 改为
df = pd.concat([df, df_table])

2022-10-24更新

警告内容:

FutureWarning: In a future version, `df.iloc[:, i] = newvals` will attempt to set the values inplace instead of always setting a new array. To retain the old behavior, use either `df[df.columns[i]] = newvals` or, if columns are non-unique, `df.isetitem(i, newvals)`

调整方案:

df.log[:, ['a', 'b']] = [1, 2]

# 改为
df[['a', 'b']] = [1, 2]

2023-05-30更新

警告内容:

FutureWarning: In a future version, `df.iloc[:, i] = newvals` will attempt to set the values inplace instead of always setting a new array. To retain the old behavior, use either `df[df.columns[i]] = newvals` or, if columns are non-unique, `df.isetitem(i, newvals)`

调整方案:

df.loc[:, df.columns != 'B'] = df.loc[:, df.columns != 'B'].fillna('')

# 改为
cols_to_fill = df.select_dtypes(include=[np.number]).columns.difference(['B'])
df[cols_to_fill] = df[cols_to_fill].fillna('')

Flask

2022-08-18更新

警告内容:

/app/swagger_server/app.py:37: DeprecationWarning: 'app.json_encoder' is deprecated and will be removed in Flask 2.3. Customize 'app.json_provider_class' or 'app.json' instead.

调整方案:
待补充…

Jupyter

2023-03-28更新

之前jupyerhub集成jupyterlab需要安装插件jupyterlab/hub-extension,但jupyter labextension install安装插件的方式已经弃用且该插件也已经弃用

>>> jupyter labextension install @jupyterlab/hub-extension
(Deprecated) Installing extensions with the jupyter labextension install command is now deprecated and will be removed in a future major version of JupyterLab.

调整方案:
修改jupterhub配置文件即可换成jupyterlab界面

>>> vim /etc/jupyterhub/jupyterhub_config.py

#  - You can set `notebook_dir` to `/` and `default_url` to `/tree/home/{username}` to allow people to
#    navigate the whole filesystem from their notebook server, but still start in their home directory.
#  - Start with `/notebooks` instead of `/tree` if `default_url` points to a notebook instead of a directory.
#  - You can set this to `/lab` to have JupyterLab start by default, rather than Jupyter Notebook.
#  Default: ''
c.Spawner.default_url = '/lab'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【动态更新】弃用deprecated登记 的相关文章

随机推荐

  • android安卓使用socketIO实现聊天室功能

    安卓使用socketIo实现聊天室Demo1 安卓androidSocketIo使用方式socketIo Android文档类资源 CSDN下载安卓使用socketio 和服务器进行通信 实现聊天室功能 可以正常进入退出聊天室 可以发送消息
  • kali 安装中文中文输入法(一遍成功无错误)

    1 查看自己内核信息 内核版本太低需要的源不用 2 使用命令 vim etc apt sources list 配置阿里云镜像源 只需要一个阿里云源 deb http mirrors aliyun com kali kali rolling
  • git上传文件到github

    1 到项目目录 git init 初始化 2 添加文件 git add 3 添加文件 git commit m 注释 4 建立远程分支 git remote add origin xxxxx 提交的github远程地址 5 因为第一次提交
  • 基于规则指导的知识图谱推理协作代理学习(2019)7.27+7.28+7.29

    基于规则指导的知识图谱推理协作代理学习 摘要 介绍 问题和准备工作 问题公式 基于符号的方法 基于游走的方法 RuleGuider 模型架构 关系代理 实体代理 policy Network 策略网络 模型学习 奖励设计 训练过程 实验 实
  • 聘用合同与劳动合同的关系

    http wenku baidu com link url GQlj5z85NRaaqsalF 9H YBTFlX811GT JlLs4tbbNppkSR5hTgyIqxhFqEuyf69yiCdEHnPv iruKDNulrLO76C5c
  • WORD文档损坏修复方法

    一 文档格式法 这种方法是将损坏的WORD文档转换为另一种格式 然后再将它转换回WORD文档格式 这是最简单和最彻底的文档恢复方法 所以如果遇到显示混乱的情况 推荐首先使用这种方法 步骤如下 在WORD中打开损坏的文档 选择 文件 另存为
  • 5000字博文带你入门python零基础-------初识Python

    Hello 大家好 我是一名五年级小学生 你们可能已经从孤寒者哪里听说过我了 他的文章写得非常nice 高质量 为他点赞 那就长话短说 这是我的第一篇博文 如果有什么不好之处 敬请谅解 可以在评论区提意见我都会看的 好 现在进入正题 我们先
  • 翼青春jc09 udx710 改串号教程有没有?

    翼青春jc09 芯片 紫光展锐udx710 改串号的教程有没有 这个问题我也发在一牛网论坛了 有没有能分享一下的 https bbs 16rd com thread 605130 1 1 html
  • 富文本 QTextDocument 解析及相关

    QTextDocument 富文本 QTextDocument textDoc textDoc setIndentWidth 20 缩进 textDoc setHtml text gt htmlText 文本 QTextBlock 文本块
  • docker数据持久化的相关介绍

    数据持久化 一 数据持久化简介 二 data volume介绍 三 Bind mount介绍 四 Docker Manager Volume介绍 五 容器与容器的数据共享 一 数据持久化简介 1 Storage Driver 数据存储 Ce
  • 深度学习环境配置2——windows下的torch=1.2.0环境配置

    深度学习环境配置2 windows下的torch 1 2 0环境配置 注意事项 一 2021 9 11更新 二 2021 7 8更新 学习前言 各个版本pytorch的配置教程 环境内容 环境配置 一 Anaconda安装 1 Anacon
  • 谷歌浏览器如何在不登录的情况下保存书签

    谷歌浏览器Chrome书签同步方法 新方法 打开谷歌浏览器之后ctrl shift o打开书签管理 点击右上角三个小点将书签导出到本地即可
  • Torchtext 0.12+ API构造训练用DataLoader与词向量的Embedding(2)

    torchtext的详细用法请参考上一期 Torchtext 0 12 新版API学习与使用示例 1 构造embedding的思路也很简单 把语料训练成torchtext对应的vocab 然后对于输入的句子 进行如下转换 文本 gt voc
  • 服务器能打开其他网站打不开,为什么有的网页打不开其他能打开(浏览器网页打不开的原因有哪些)...

    不知道小伙伴们 有没有遇到这样的问题 网络明明没问题 QQ等工具也可以正常登陆 就是有一部分网页打不开 打不开一般就俩原因 1 网站服务器出问题了 网页访问不了 2 DNS问题 访问网页 错误代码 DNS PROBE FINISHED NX
  • TypeScrip详解十八:ts中的类型断言

    TypeScript是一种静态类型的编程语言 它允许开发人员在编写代码时指定变量和函数的类型 但是 有时候我们需要在某些情况下告诉编译器某个值的类型 这时候就需要使用类型断言 什么是类型断言 类型断言是告诉编译器一个值的类型的方法 使用类型
  • Vite项目插件

    1 unplugin vue components 自动导入组件 1 1 安装 npm install unplugin vue components D 1 2 自动导入ui库 该插件内置了大多数流行库解析器 Element Plus A
  • QT 的 Graphics View 系统

    这个框架是一个相对成熟的渲染引擎的上层框架 通常也可以会叫做 Scene View 在QT中 GraphicsView是一个与QWdiget系列一点点不一样的系统 这个系统主要由下面几个框架类构成 QGraphicsView QGraphi
  • [Unity][动作]禁用animation功能不让动画进行位移

    在unity 的 asset store 里面下载 的动作 有的时候会产生动画的位移 使得 人物角色的 animator 的 apply root motion 保持 取消勾选的状态 动画播放就不会进行移动了 参考资料 1 Unity 禁用
  • Landsat 8数据介绍

    1 简介 1 1 数据简介 2013年2月11日 美国航空航天局 NASA 成功发射Landsat 8卫星 Landsat 8卫星上携带两个传感器 分别是OLI陆地成像仪 Operational Land Imager 和TIRS热红外传感
  • 【动态更新】弃用deprecated登记

    由于各项目代码更新频率不一致 导致项目中存在已弃用或即将弃用的方法 故在此记录一下 方便查找 以下的时间并非弃用时间 仅代表我发现的时间 SQLAlchemy 2022 04 29更新 警告内容 SADeprecationWarning T