Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
from __future__ import annotations import sqlite3 import unittest import uuid from dataclasses import dataclass @dataclass(frozen=True) class UserId: value: str @dataclass(frozen=True) class Username: value: str @dataclass(frozen=True) class FullName: first_name: str family_name: str @dataclass class User: id: UserId username: Username name: FullName def change_username(self, new_username: Usernam
import dataclasses import unittest @dataclasses.dataclass(frozen=True) class FullName: full_name: str @dataclasses.dataclass class User: def __init__(self, full_name: FullName): self.full_name = full_name def change_full_name(self, new_name: FullName) -> None: if new_name is None: raise ValueError(f"{new_name} is invalid argument") self.full_name = new_name class TestUserEntity1(unittest.TestCase)
バージョン Python 3.7.0 目次 ドメインサービスとは エンティティ自身に横断的な知識を実装 ドメインサービスに横断的な知識を実装 使う場面によっては別の案があるかも ドメインサービスとは ドメインサービスは、値オブジェクトとエンティティの横断的な知識を実装することが許されている。 エンティティ自身に横断的な知識を実装 エンティティに横断的な知識を持たせるように実装してみる。 ユーザ自身に他のユーザとの重複を判断させるのは、確かに違和感がある。 from __future__ import annotations import unittest import uuid from dataclasses import dataclass @dataclass(frozen=True) class UserId: value: str @dataclass(frozen=True)
''' nonG.py purpose: delete G row in ALT column ''' import os import pandas as pd import argparse import sys def main(): # make parser parser = argparse.ArgumentParser() # add argument parser.add_argument('input') parser.add_argument('output') # analize arguments args = parser.parse_args() # set input filename and the number of vcf header inputfile = args.input print(inputfile) # if inputfile does
この記事はPython Advent Calendar 2014 - Qiita 2日目の記事です 前日は @kureikei さんのBlender関連 でした 最近はgolangでツールを作るのが流行っていますが、負けじとpythonももっと盛り上がって欲しいですね ということで、コマンドラインツールを作る時に必要な引数・オプションパーサを紹介していきます コンテンツ Pythonからコマンドラインでの引数・オプションを処理します 使用するものは sys.argv argparser.ArgumentParser docopt.docopt の3種類 getoptしか使えないような古いPythonは切り捨てました optparseはdeprecatedになっているので、ここでは紹介しません Deprecation of optparse 対応バージョン argparseがPython2.
この記事について Djangoを使用する際に実践開発に近いフローを簡単に再現します。 「Djangoを勉強しているけど、実務での開発はどうなっているでしょう」という方の参考になれば嬉しいです。 また本記事の内容は最善とは言えませんので、ぐれぐれもご容赦ください。 本記事の環境 python3.7.1 Django 2.1.5 PyCharm 先ずは設計から Explicit is better than implicit. 暗示するより明示するほうがいい。 --pythonの禅 何かを作る前に先ず頭にあるアイディアを具現化しましょう。 いかに簡単そうなものでも設計図があった方がいい。 特に会社のプロジェクト、制作途中、新しくメンバーが入ってくることがよくあります。 設計図があれば、プロジェクトを理解するための時間が短縮されます。 今回のデモは簡単なスクール学生管理システムと設定します モデ
リファレンス: [mypy で静的型付け Python プログラミング] (http://t2y.hatenablog.jp/entry/2014/12/22/004525) コマンドラインオプション付きの which コマンドを実装してみた 前に Python で書いた which コマンドのコードに対して mypy の型アノテーションを追加して静的型チェックを試してみました。 mypy には、かなりの標準ライブラリのスタブがすでに定義されていますが、which コマンドで使っていた argparse, operator, itertools モジュールのクラスやメソッドが足りなかったので自分でスタブを定義してみました。このスタブの定義が慣れてなくてちょっと難しったです。 from typing import Any, List, Sequence, Undefined class Na
class APITestCase(TestCase): @responses.activate def test_api(self): import api # setup responses.add( responses.GET, 'https://example.com/api/v3/users', status=200, body="[{'user': {'id': 1, 'username': 'test'}}]", content_type="application/json", ) # test api.get_users() assert responses.calls[0].request.method == 'GET' assert responses.calls[0].request.url == 'https://example.com/api/v3/users'
pythonの型チェッカとしてはMypyが有名だと思います。私は普段Mypyを使っていますが、Facebookの開発したPyreというのがあることを知ったので使ってみました。 この記事では「FacebookはなぜPyreを開発したのか」とか「MypyとPyreの特徴比較」とかの話はしません。あくまで自分が使ってみた所感をまとめるだけです。 インストール 公式サイトにあるとおり、python>=3.5でpip install pyre-checkとするだけです。 いきなりVSCode拡張をインストール(おすすめしません) これまた公式サイトの手順に従えば、チェックに引っかかったところをVSCodeで表示することができます。 pyre initとするとソースのディレクトリを聞かれるので指定します。あとは普通のVSCode拡張と同じで、インストールして再読込します。 おそらくおびただしい数のエラ
@ITの記事Microsoft、Pythonの静的型チェック機能を提供する「VS Code」プラグイン「Pyright」を公開によると、mypyなどよりも5倍以上も高速な型チェッカのVisual Source Codeのプラグインが先週から公開されているそうです。 GitHubのリポジトリもあります。 Pyrightをpipenv環境で利用する場合には環境設定ファイルに指定しないと、サードパーティーのライブラリのimportに問題があると表示するようです。環境設定ファイルは、デフォルトではプロジェクトのルート・ディレクトリにあるpyrightconfig.jsonです。 設定にはpipenv --venvの出力結果が必要です。たとえばpipenv --venvの出力が/home/user1/.virtualenvs/test1-4AdBOHeoの場合には、以下の通りです。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く