from urlparse import urlparse import urllib def toGSBL(str_url, character_code) scheme, netloc, path, params, query, fragments = urlparse(unicode(str_url, character_code, 'ignore')) netloc = netloc.encode('idna') path = urllib.quote_plus(path.encode('utf-8'), '') if len(path) > 0 else '/' query = urllib.quote_plus(query.encode('utf-8'), '') if len(query) > 0 else '' return scheme + '://' + netloc
Google Safe Browsing APIは特定のURLやバイナリが安全か否かをチェックするAPI。さっと調べるときに便利なようにJupyterから使えるようにしてみた。 普通のURLを入れると何も値が出てこないので「安全でないURL」を探したのと、ヒアドキュメントにURLを埋め込むあたりに苦労の跡が。 import pycurl, io, json url = 'http://malware.testing.google.test/testing/malware/' api_key = 'your_api_key' data = ''' {{ "client": {{ "clientId": "your_client_name", "clientVersion": "0.1" }}, "threatInfo": {{ "threatTypes": ["THREAT_TYPE_UNS
Pipenvでよく出喰わす問題¶ Pipenvはボランティアにより常に改善されていますが、現時点でも非常に幼いリソースの限られているプロジェクトで、対処する必要のあるゆがみもあります。 皆の援助が必要なのです (あなたの援助もです!)。 ここではPipenvを使っている人達が抱くことの多い疑問について解説します。 以下に書かれていることをよく読んで、あなたが遭遇している問題を解決できるかどうかを調べてください。
この記事はiRidge Advent Calendar 2018 の10日目です。Vimのほうのアドベントカレンダーではない。 tl;dr みなさん、VimでPythonツールを使っていますか? 私は現在勤めているiRidgeにおいて、 主要開発言語であるPythonで構築されたシステムを開発しています。 その中で開発環境の整備に付随するパスの問題に悩まされてきました。 今回はそのパス問題を解決して開発環境の構築がようやく満足できるレベルとなり、 自分の中で一応の決着を迎えたため、この機会のその内容を共有したいと思います。 同じような悩みを抱えている方の一助となれば幸いです。 前提条件 使用Vim nvim v0.3.1 使用Pythonツール pyenv pyenv-virtualenv pyenv-virtualenvwrapper Python開発環境を整えるツール群 Pythonの
See what sort of trouble users can get in trying to type your domain name. Find lookalike domains that adversaries can use to attack you. Can detect typosquatters, phishing attacks, fraud, and brand impersonation. Useful as an additional source of targeted threat intelligence. DNS fuzzing is an automated workflow that aims to uncover potentially malicious domains that target your organization. Thi
In this guide, you will get a look into Python type checking. Traditionally, types have been handled by the Python interpreter in a flexible but implicit way. Recent versions of Python allow you to specify explicit type hints that can be used by different tools to help you develop your code more efficiently. In this tutorial, you’ll learn about the following: Type annotations and type hints Adding
python でコマンドを実行するには subprocess モジュールを使う 以前にも書いたんだけど、気になったので、再度調べ直した。 os.popen があるじゃないと思われるかもしれないが、os.popen は内部的に subprocess (shell=True)を使ってるので同じことである。 後述するが、シェルインジェクションも考慮すると、shell=Falseにするべきなので、考えなしのos.popen利用は避けよう。 suprocessでコマンドを実行する 単純にコマンドを実行するには、subprocess.call を使うのが楽ですね バッククォート ` やos.system のかわりに subprocess .call() を使うようです。 import subprocess cmd = "sleep 30" proc = subprocess.call( cmd , s
はじめに Python で Memoize (Memoization / メモ化) する方法をお伝えします。 ※「Memoize」は「Memoization」や「メモ化」ともいいます。 Memoize とは Memoize とは、キャッシュを用いて関数呼び出しを高速化する手法のことです。関数呼び出し時の引数をキーとして戻り値をキャッシュし、同じ引数で呼び出された場合にキャッシュした値を返す (関数呼び出しを省略する) ことで高速化します。 Memoize の効果が高い場合 関数が以下の特徴を持つときは、Memoize することで大きな効果を期待できます。 関数が同じ引数で何度も呼び出される 関数呼び出し 1 回あたりのコストが高い (実行時間が長い) 例としてフィボナッチ数を求める再帰関数を定義します。引数 n の値が大きくなるほど、関数 fibonacci は同じ引数で何度も呼び出されま
色々Pythonを速くするための世の中に方法はありますが、本記事ではCythonやPyPyなどの高速化のTIPSに触れていきます。 この記事で触れること プロファイラーなどの計測関係 ビルドインモジュールなどの機能 Pythonのキャッシュ関係 Cython Numba PyPy(紹介だけ) その他一部のサードパーティーのライブラリ関係 この記事で触れないけどそのうち書くかもしれない内容 並列処理(multiprocessing)、並行処理(threading)、非同期処理(asyncio)、それらの組み合わせ(concurrent.futures)など Dask関係 PyPyの踏み込んだ検証内容など 話題のVaex 記事で使う環境 Windows10(ローカルのJupyter)とUbuntu(クラウド上のカーネル)で進めていきます。 言語はPython3.7.1(win)とPython3
高速化に関して 高速化はほんとに色々と罠が多い。意図した計測できていなかったり。(特に、python3はmapとかの返り値がジェネレータになっているので、その計測を間違っている例とかがウェブには多い。) 高速化の前に計測が必須だが,計測に関しては別のまとめを参照。 リストは連結リストではなく配列 Pythonのリストはいわゆる連結リストではなく可変長配列(たぶん)。arrayというのがあるけどそっちは固定長配列。 よって、リストの先頭要素の挿入/削除(insert/pop)とかはしない。 また,順次appendしていくと容量オーバーのときに領域の拡張が発生し,コピーが発生し得る。それを避けるためには,サイズがわかっているなら,[None]*n_sizeなどで予め領域を確保しておく。任意のオブジェクトを格納出来ることから,おそらくリストの要素はそのオブジェクトへのポインタだと思うのでNone
κeenです。これは 言語実装 Advent Calendar 201713日目の記事です。 RPythonやPyPyについて勘違いしてる人向けに誤解を解こうかと。あんまコードは出てこないやつです。 いきなり話が逸れますが、PyPyとRPythonの話前に二村射影を知っておくと理解が深まるかもしれないので触れて起きます。 二村射影と部分評価 詳しくはWikipediaを見て下さい。 ここでは直感的な話をします。 第一: インタプリタとExecutable インタプリタは抽象的にはソースコードと入力データを受け取って出力データを出しています。 +---------+ +--------+ | in/data | | source | +---------+ +--------+ | | +-------------+ | interpreter | +-------------+ | +--
学習履歴 ■はじめに python でテスト手法について色々と学んできたが、テストと合わせてログの出し方も 覚えておくと便利だ。 ここでは、ロギングの勉強をしよう。 ■参考 この記事は、現役シリコンバレーエンジニアが教えるPython 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイルを参考にしています(すごく、おすすめです!) [その他 プログラム記事] ■環境 python3 pycharm Anaconda ■ロギング ロギングの方法を実際にコードを書きながら覚えていこう。 1.ログレベル python のロギングには、5 つのレベルがある。 1. CRITICAL 2. ERROR 3. WARNING 4. INFO 5. DEBUG デフォルトでは、INFO, DEBUG は、出力されないようになっている。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く