我正在尝试使用标准库来调试我的代码:
这很好用:
import logging
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
logger.info('message')
Run Code Online (Sandbox Code Playgroud)
我无法为较低级别的记录器工作:
logging.basicConfig(level=logging.DEBUG)
logger = logging.getLogger(__name__)
logger.info('message')
logging.basicConfig(level=logging.DEBUG)
logger = logging.getLogger(__name__)
logger.debug('message')
Run Code Online (Sandbox Code Playgroud)
我没有得到任何回应.
我必须在这里遗漏一些东西.我在Android的双向绑定中看到的每个例子都基于String用户可输入的任何内容的支持数据,例如EditText.
处理任何不是字符串的东西似乎有点......不优雅.例如,如果我的域模型中有一个需要可编辑的双,那么我提出的最好的绑定需要一个ViewModel令人惊讶的很多代码来连接模型和模型EditText.
我错过了什么关键吗?我真的需要30行代码才能EditText与双重接口吗?为了便于讨论,让我们考虑一个货币字段,以双向方式表示为双向EditText:
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="numberDecimal"
android:text="@={fragModel.startBucks}"
android:id="@+id/editText2"/>
Run Code Online (Sandbox Code Playgroud)
这里是我必须构造的ViewModel,以便为EditText提供一个绑定的字符串.
@Bindable private String startBucksString;
private double localBucks;
public String getStartBucksString() {
double domainBucks = cd.getStartBucks();
// Ignore incoming change of less than rounding error
if( Math.abs(localBucks - domainBucks) < .001 ) return startBucksString;
startBucksString = "";
if( domainBucks != 0)
startBucksString = String.format("$%.2f", domainBucks);
return startBucksString;
}
public void setStartBucksString(String inBuckstr) {
double calcBucks=0;
inBuckstr = inBuckstr.replaceAll( "[^\\d.]", …Run Code Online (Sandbox Code Playgroud) 我想要求使用基于 Java 1.7 内置HttpsServer 的服务器进行客户端证书身份验证。
我似乎找不到任何方法使服务器无法通过身份验证。它会愉快地向任何旧客户端提供数据,无论其客户端证书是否受信任、未知或完全不存在。
我对文档的阅读表明,当客户端不受信任时,设置 HttpsParameters.setNeedClientAuth(true)应该会导致身份验证失败。我发现了有类似问题的人的注释,不同程度地建议在 SSLEngine 和 SSLParameters 中使用相同的标志,但两者都没有改变我的行为。
这是我能够创建的最简单的示例。看看事务的实质(使用 Wireshark 或 -Djavax.net.debug=all),我没有看到任何看起来明显像服务器的证书请求的东西......当然,这似乎很明显,因为它在它响应时不应该。
我对 Java 和 SSL 都比较陌生。我是否误解了身份验证过程?我是否在适当的库中使用?我是否忽略了解决此问题的好方法?谢谢!
编辑 1:更新了示例代码以正确分离客户端密钥库和信任库。还改写了问题以使身份验证问题更加清晰。
package authserv;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.InetSocketAddress;
import java.net.URL;
import java.security.KeyStore;
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.KeyManager;
import javax.net.ssl.KeyManagerFactory;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLParameters;
import javax.net.ssl.SSLSession;
import javax.net.ssl.SSLSocketFactory;
import javax.net.ssl.TrustManagerFactory;
import com.sun.net.httpserver.HttpExchange;
import com.sun.net.httpserver.HttpHandler;
import com.sun.net.httpserver.HttpsConfigurator;
import com.sun.net.httpserver.HttpsExchange;
import com.sun.net.httpserver.HttpsParameters;
import com.sun.net.httpserver.HttpsServer;
public class AuthServer {
final static String SERVER_PWD …Run Code Online (Sandbox Code Playgroud) HDF5格式显然不支持format =“ fixed”的类别。下面的例子
s = pd.Series(['a','b','a','b'],dtype='category')
s.to_hdf('s.h5','s')
Run Code Online (Sandbox Code Playgroud)
返回错误:
NotImplementedError:无法在使用format =“ fixed”的HDF5数据集中存储类别dtype。使用format =“ table”。
如何构造带有format ='table'的分类系列?
问题: Pandas.DataFrame.to_latex() 输出的表不包含长列标题。从 Pandas 0.24 开始,line_width= 参数已被删除。
讨论:
我使用 df.to_latex() 命令导出许多表,以包含在主文档中。许多表格都有冗长的列标题,主要是因为需要包含括号内的单位。
最终结果是一组极其稀疏的表格,通常无法容纳在页面上。
下面是一个过于稀疏的生成 Tex 的示例:
\begin{tabular}{lrrrrrr}
\toprule
{} & Odometer (km/y) & Fuel (L/y) & Elec (kWh/y) & Economy (L/100km) & GHG (kg CO2e) & GHG (g/km) \\
Type & & & & & & \\
\midrule
Type 1 & 70753.62 & 9721.06 & 0.00 & 13.74 & 21386.33 & 302.26 \\
Type RRR & 56167.39 & 5285.40 & 1627.60 & 9.41 & 11642.54 & 207.28 \\
Type X & …Run Code Online (Sandbox Code Playgroud) Matplotlib 似乎误解了 Pandas datetime64[ns] 索引。我的 MVCE 显示一些当前日期被解释为 1970 年。是否根本无法将mpl.dates格式化程序与 pandas 日期一起使用? ax.get_figure().autofmt_xdate()工作正常,但返回整个详细日期字符串。
import pandas as pd
import matplotlib as mpl
from pandas import Timestamp
print(f"pd:{pd.__version__} mpl:{mpl.__version__}")
df = pd.DataFrame({'Hourly Total':
{Timestamp('2022-04-28 11:00:00-0700', tz='Canada/Pacific'): 0.0012916667166666667,
Timestamp('2022-04-28 12:00:00-0700', tz='Canada/Pacific'): 0.00383333365,
Timestamp('2022-04-28 13:00:00-0700', tz='Canada/Pacific'): 0.00383333365,
Timestamp('2022-04-28 14:00:00-0700', tz='Canada/Pacific'): 0.00383333365},
})
ax = df.plot(kind='bar')
formatter = mpl.dates.DateFormatter('%y-%m-%d')
ax.xaxis.set_major_formatter(formatter)
Run Code Online (Sandbox Code Playgroud)