OverviewDependency Injection(DI) is a software engineering technique for defining the dependencies among objects. Basically, the process of supplying a resource that a given piece of code requires. The required resource is called dependency. There are various classes and objects defined when writing code. Most of the time, these classes depend on other classes in order to fulfill their intended pu
この記事は、Brainpad Advent Calender 15日目の記事です。 本記事では、メモリに乗らないようなデータもPandasやNumPyライクに操作を行い、スケールアップ・スケールアウトにも対応できるライブラリ、Daskについて、簡単に紹介をします。 はじめに Pythonでデータ分析や機械学習をする際、PandasやNumPyを用いる場面が非常に多くなってきました。 しかし、PandasやNumPyではメモリに乗らないデータの扱いが難しかったり、基本的にシングルコアでの処理を行うため、速度が遅い、といった問題があります。例えば、サーバー上で実行する際、CPUの論理コアが32個あっても、1個のCPUしか使用していない、といった感じです。 近年、データ分析関連のライブラリは非常に多様化しており、派閥(?)が沢山あるようです。 個人的には、Pandas作者であるWes McKin
/ - DI/ - DIContainer.py `- __init__.py `- sample.py DICOntainer.py # -*- coding: utf-8 -*- class DIContainer: def __init__(self, c): self.objects = dict() self.componentFactory = c c.accept(self) def get(self, name): name = name.title() if not name in self.objects: self.objects[name] = self.componentFactory.get(name) return self.objects[name] class ComponentFactory: def __init__(self): self.conta
Googleの人が作った (Google公式のProjectではない)Python DI Frameworkらしい. 結構簡単に使える. 数人で開発する場合に,全体のロジックやSWアーキは自分で握って, クラス単位で他人が作成したものに差し替えたいという場合は, スクリプトといえど,DIが使いたくなる. (モジュール/クラスを思っても見ない感じにいじられるとたまったものではない) Installation sudo pip install pinject Condensed Summary .pyに書く,yml/json/xmlでない configurationにはbinding specを使う arg nameとclass nameが対応していると暗黙にDI @inject() __init__()はこのクラスにはBindするという意味 argname to class/instance
久々に開発ネタです. 大晦日ハッカソン2019 #大晦日ハッカソンで, 野球のデータをシュッと見るためのDashboardを作る(理由は後ほど). そんなDashboardのBackend APIをシュッと開発する. を目標に立て現在進行系でやってるのですが, 午後の進捗その2 Docker化が特に滞りなく完了. API Docも見れるとかFast API強すぎぃ 昨日の夕方から開発してたAPIはアッサリ1st Ver.できたので, 大晦日の買い物終わったらフロントエンドを除夜の鐘が鳴るまでになんとかするぞ #大晦日ハッカソン pic.twitter.com/wWMiSvQDKu— Shinichi Nakagawa (@shinyorke) 2019年12月31日 Backendを昨日(12/30)の18:00から着手して(実質作業時間)約5時間ちょいで完成させてしまいました. 本年最後
(今更ですが)新年あけましておめでとうございます! JX通信社でシニア・エンジニアをしています, @shinyorke(しんよーく)と申します. 最近は週に2, 3回, ジムで10kmちょい走っています.*1 JX通信社のエンジニアチームでは, 月に一度みんなが集まる月次勉強会というイベントがあります(基本的に第2金曜日開催)*2. tech.jxpress.net ※過去の開催レポです 2020年初(かつ, 飯田橋オフィス最後*3)の勉強会は, 「普及したいことや年末年始に勉強したことなどを発表するLT大会」 ということで, 私は デブサミ2020登壇時に披露するデモアプリを披露 弊社プロダクトでも使っているFastAPI僕もやりました&Nuxt Core UI ええやで!っていう布教 (ちょっとだけ)野球選手の評価指標を紹介 という発表をさせてもらいました. このエントリーではそんな発
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? IPアドレスをいじくりまわしたり、IPアドレスの比較・判定、CIDR作成・結合や分解、 レンジ範囲操作でなどネットワークエンジニアは活用する機会が多いnetaddrの自分用に使い方メモまとめ。 メモなんで今後随時追加していきます。 1. netaddrインストール pipコマンドでインストール pip install netaddr 2.netaddr読み込み from netaddr import * 3 netaddr基本操作 IPアドレスの種類出力 ip = IPAddress('192.0.2.1') print(ip.vers
pythonは型ヒントを無視するのでこうなるしかないんですけど どうしてもオーバーロードするなら自分で型を判定する ていうかUnion型があるってことはもともとそういうものってことかな class Point: def __init__(self, x: Union[Tuple[float, float], float] = 0.0, y: float=0.0) -> None: if isinstance(x, tuple): self.x = x[0] self.y = x[1] else: self.x = x self.y = y mypyは通った 動かす $ python3 -i shape.py >>> Point() Point(0.0, 0.0) >>> Point(1.0,2.0) Point(1.0, 2.0) >>> Point((2.0,4.0)) Point(2.
いつものやつです。対応していない値をjson.dumps()に与えるとTypeErrorが発生するやつです。 TypeError 例えばこういうdataclassを定義して。 from dataclasses import dataclass, asdict @dataclass class Point: x: int y: int json.dumpsするとTypeError import json p = Point(x=1, y=2) # TypeError: Object of type Point is not JSON serializable print(json.dumps(p)) default いつもどおりにdefaultを渡してあげる必要があります。ちょっとめんどくさいですが、is_dataclassという関数で調べられるのでどうにかなります。 import json
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く