並び順

ブックマーク数

期間指定

  • から
  • まで

201 - 240 件 / 315件

新着順 人気順

dataclassesの検索結果201 - 240 件 / 315件

  • mapで変換! csvモジュールで読み込んだ行から、リスト/辞書/タプル/名前付きタプル/データクラス(のインスタンス)を作る - nikkie-ftnextの日記

    はじめに わりぃ、おれ、死んだ、nikkieです1。 CSV形式のファイルを読み込んで、行を各種データ型に変換する方法を一覧にしていきます! ドキュメントを見ていたら「これ、どんなデータ型にも変えられるんじゃないか💡」と着想を得たんですよ 目次 はじめに 目次 本記事の背景 ポイントは組み込み関数map CSVファイルを読み込んでデータ型に変換 list(リスト) dict(辞書) tuple(タプル) 名前付きタプル collections.namedtuple typing.NamedTuple データクラスのインスタンス 終わりに 本記事の背景 以下のツイートがきっかけです。 Pythonってlistとtuple区別されてるの? やったー!と思って組み込みのcsvモジュールを使ってみたら行がlistで返ってきたときの顔 https://t.co/zCLaCddYVX— にゃんだーす

      mapで変換! csvモジュールで読み込んだ行から、リスト/辞書/タプル/名前付きタプル/データクラス(のインスタンス)を作る - nikkie-ftnextの日記
    • 【Python】GoogleColabでLangChainを使用する

      【Python】GoogleColabでLangChainを使用してみます。 LangChainは、大規模言語モデル (LLM) を使用してアプリケーションの作成を簡素化するように設計されたソフトウェア開発フレームワークです。さまざまなデータソースに接続して対話する機能を備え、パーソナル アシスタント、質問応答、チャットボットなどの幅広いシナリオで使用できます。 ■今回の環境(Python) 今回のPythonは、バージョン3.9.16を用いる。(なお、Google Colaboratory(Google Colab)を使用。) ■Google Colabでノートブックの新規作成まずは、Google Colab(https://colab.research.google.com/)にアクセスします。アクセス後、お持ちのGoogleアカウントでログインされているか確認しておきましょう。 確認

        【Python】GoogleColabでLangChainを使用する
      • Airflowのクラス設計のTips | NHN テコラス Tech Blog | AWS、機械学習、IoTなどの技術ブログ

        1. [課題] DAGが肥大化してタスクの修正がしづらい Airflowのワークフロー(DAG)の構築は以下の流れで行われます。 DAGインスタンスを生成 タスクを生成 タスク間の依存関係を定義 例えば、以下のコード例は3つのタスクから構成されるDAGを構築しています。まず、create_value_task タスクで初期値(10)を出力し 次に add_value_task タスクで出力値を読み込んで100を加算し、最後に show_value_task タスクで加算後の値を表示しています。 from airflow.models.taskinstance import TaskInstance from airflow.operators.python import PythonOperator from airflow.operators.bash import BashOperat

          Airflowのクラス設計のTips | NHN テコラス Tech Blog | AWS、機械学習、IoTなどの技術ブログ
        • 【Python】dict in listやinstance in listをsortする方法 - Qiita

          listのソートはよくありますが、ここではdict in listやinstance in listをsortする方法を書き留めます。 sortは全て昇順とします。 sortで使用するのは組み込み関数のsortedです。 動作確認済みのPythonバージョン 3.7 3.8 標準ライブラリdataclassesを使用しなければ3.6とかでも動くはずです dict in listの場合はsorted関数のkey引数を指定してあげる必要があります。 keyを指定する時にlambda使って無名関数でlambda x: x['a']でもいいですが、公式によると標準ライブラリoperatorのitemgetterを使用した方が高速らしいです(検証していないのでなんとも言えませんが)。 Python は高速で扱いやすいアクセサ関数を提供しています。 operator モジュールには itemgette

            【Python】dict in listやinstance in listをsortする方法 - Qiita
          • 生産計画の最適化(OR-Tools) - Qiita

            はじめに Googleの数理最適化ツール(OR-Tools)を使用して、生産計画を最適化するプログラムを作成してみた。 https://developers.google.com/optimization 【追記】 今回の生産計画の仕様では、それぞれの設備は同一で区別できない。 あらかじめ任意の一つのジョブを割付ける設備を固定することで 解が得られるまでの時間が短くなる。(タイブレーク条件) 生産計画の仕様 複数の作業ロット(lot)があり、各ロットは連続するジョブ(job)で構成される。 各ジョブには、生産に必要な時間(size)が指定される。 各ジョブは、複数の設備のいずれかに割付ける必要がある。 同一の設備に割付けられたジョブは、互いに重なってはいけない。 同一のロットを構成するジョブは順番に生産する必要がある。 全てのジョブが終了するまでの時間を最小化する。 変数の定義方法 ジョブ

              生産計画の最適化(OR-Tools) - Qiita
            • dataclasses-json:`DataClassJsonMixin`を継承しているデータクラスで`undefined`や`letter_case`を設定する場合は、`dataclass_json_config`クラス変数を設定する - Qiita

              環境 Python 3.11.2 dataclasses-json 0.5.7 やりたいこと @dataclass_jsonにはletter_caseやundefined引数で、設定を変えることができます。 from dataclasses import dataclass from dataclasses_json import dataclass_json, Undefined, Undefined @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.RAISE) @dataclass class Task: task_name: str value: int = 10

                dataclasses-json:`DataClassJsonMixin`を継承しているデータクラスで`undefined`や`letter_case`を設定する場合は、`dataclass_json_config`クラス変数を設定する - Qiita
              • [pyqtgraph] Plot Options -> Transformsの表示をリンクさせる - Qiita

                やりたいこと pyqtgraph内で右クリックしてPlot Options -> Transformsと進むとグラフの表示形式を変更してくれます。 表示変更の種類 この変更を複数のグラフでリンクさせるのが目的です。 環境 Mac OS Python 3.8.5 PyQt5 5.15.2 PyQt5-sip 12.8.1 pyqtgraph 0.11.1 pip install PyQt5 PyQt5-sip pyqtgraph コード プロット用にnumpyを使用しています。 pip install numpy """pyqtgraphのPlot Options -> Transformsをリンクさせる""" import dataclasses import itertools from typing import Optional import sys import numpy as

                  [pyqtgraph] Plot Options -> Transformsの表示をリンクさせる - Qiita
                • Diffusionモデルによる漢字の生成 - Qiita

                  はじめに This Kanji doesn't exist (一部ありそうですが...) diffusionモデルを作成して、漢字を生成した記録になります Diffusionモデルを実際にPythonで動かして、学習方法を理解することが目的です 詳しい理論や数式の導出は説明はしておりません 多様でありながら単純であり、かつ簡単に準備できる学習データとして"漢字"を利用しました コードはこちらを参考にしており、ネットワーク部分はそのまま利用しています https://github.com/tcapelle/Diffusion-Models-pytorch もくじ ライブラリのインポート 漢字データセットの作成 拡散過程 逆拡散過程 学習コード 結果 漢字生成 0. ライブラリのインポート 学習で利用するライブラリをインポートします。 学習はGoogle Colaboratoryで実施しました

                    Diffusionモデルによる漢字の生成 - Qiita
                  • Pythonでdataclasses-jsonを用いてJSONシリアライズおよびデシリアライズを行う

                    Pythonでdataclasses-jsonを用いてJSONシリアライズおよびデシリアライズを行ってみます。 今回はdataclasses-jsonを用います。このライブラリ・モジュールはPythonの標準ライブラリではありませんので、事前にインストールする必要があります。 ■Python 今回のPythonのバージョンは、「3.8.5」を使用しています。(Windows11) ■dataclasses-jsonを用いてJSONシリアライズおよびデシリアライズを行うでは、早速dataclasses-jsonを用いてJSONシリアライズおよびデシリアライズを行うスクリプトを書いていきます。 ■コードimport json from dataclasses import dataclass from dataclasses_json import dataclass_json @datacl

                      Pythonでdataclasses-jsonを用いてJSONシリアライズおよびデシリアライズを行う
                    • Pythonで値オブジェクトっぽいModint - Qiita

                      こだわりポイント Immutableいいよね modが異なるModint同士の演算を防止 制約や規則は極力クラス外に定義、__truediv__だけ諦めた 競プロ目的ではないため速度には無頓着 コード from __future__ import annotations from collections.abc import Callable from dataclasses import dataclass from functools import wraps from typing import Self, SupportsInt, TypeAlias from sympy import mod_inverse as _mod_inverse # NOTE mod 素数 だけでいいなら: # from functools import lru_cache # @lru_cache(m

                        Pythonで値オブジェクトっぽいModint - Qiita
                      • データサイエンティストのためのデータクラス - Qiita

                        今年も書きます、アドベントカレンダー。去年に引き続き、データサイエンティスト現場の実情と改善なんかを書きたいと思います。私自身はデータサイエンティストありながら、最近はWebアプリケーション開発とそのマネジメントなんかもしており、データサイエンティストという名前がもはや適切ではないような気もしてきましたが、満足のいく年でした。私自身は、データ分析はやはり現場で使ってもらえて、なんぼだと思います。 昨今、データサイエンスを社会実装だのMLOpsだのそれ用にこのツールを使えば良いだのなんだのとやかく言われていますが、地に足がついているか怪しいものもあるように思います。私は単に、データサイエンティストが正しくpythonを使いこなせていないが割と大きい気がしております。そういうわけで今年は、データサイエンティストのコードを含めたWebアプリケーションを完成させるために、私が不可欠だと考えているデ

                          データサイエンティストのためのデータクラス - Qiita
                        • Amazon SageMaker Clarify で基盤モデルの評価と選択が容易に (プレビュー) | Amazon Web Services

                          Amazon Web Services ブログ Amazon SageMaker Clarify で基盤モデルの評価と選択が容易に (プレビュー) Amazon SageMaker Clarify が基盤モデル (FM) 評価 (プレビュー) をサポートするようになりました。データサイエンティストまたは機械学習 (ML) エンジニアは、SageMaker Clarify を利用して、精度、堅牢性、創造性、事実的知識、偏見、毒性などのメトリクスに基づいて、FM を数分で評価、比較、選択できるようになりました。この新しい機能は、ML データとモデルのバイアスを検出し、モデルの予測を説明する SageMaker Clarify の既存の機能に追加されます。 この新機能は、SageMaker JumpStart で使用可能な LLM や、AWS の外部でトレーニングおよびホストされているモデルを含

                            Amazon SageMaker Clarify で基盤モデルの評価と選択が容易に (プレビュー) | Amazon Web Services
                          • dataclassの初期値を動的に入れる - Qiita

                            とりあえず dataclassは好きです。型指定あんま役に立たないけど でも、初期値が面倒です。特に dataclasses.field(default_factory・・・ これ そんなわけで、なんとかしたいと思います @dataclasses.dataclass class Margin: top: int bottom: int left: int right: int al: list @dataclasses.dataclass class Color: r: int g: int b: int m: Margin @dataclasses.dataclass class Config: margin : Margin output_margin : Margin corner_average : float threshold_gray : int threshold_colo

                              dataclassの初期値を動的に入れる - Qiita
                            • Google ColabでSAM(Segment Anything Model)モデルを使ってみる - Qiita

                              !pip install -q 'git+https://github.com/facebookresearch/segment-anything.git' !pip install -q jupyter_bbox_widget dataclasses-json supervision !mkdir -p {HOME}/weights !wget -q https://dl.fbaipublicfiles.com/segment_anything/sam_vit_h_4b8939.pth -P {HOME}/weights import os CHECKPOINT_PATH = os.path.join(HOME, "weights", "sam_vit_h_4b8939.pth") print(CHECKPOINT_PATH, "; exist:", os.path.isfile(CHE

                                Google ColabでSAM(Segment Anything Model)モデルを使ってみる - Qiita
                              • 各プログラミング言語における高階関数による関数型プログラミングの初歩入門 - MyEnigma

                                Javaによる関数型プログラミング ―Java 8ラムダ式とStream 目次 目次 はじめに 複数の条件を元にソート Python Java Julia 同じデータでグルーピングするgroupby Python Java Julia 一つのリストから、複数の要素を作り、一つのリストにまとめる (flatmap) Python Java Julia 複数の関数を繋げるチェーンラムダ Java Julia 参考資料 MyEnigma Supporters はじめに ちゃんとした関数型プログラミングは少し敷居が高いですが、 高階関数をベースとしたシンプルなものは、使えると便利なので、 様々な言語で実装したものを、まとめておきます。 複数の条件を元にソート ある構造体(クラス)のリストを複数の条件でソートしたい場合は、 各言語で下記のように、高階関数を使って、簡単にソートできます。 Python

                                  各プログラミング言語における高階関数による関数型プログラミングの初歩入門 - MyEnigma
                                • 【AWSコスト削減の道 for 開発環境】 NATゲートウェイ編 - Qiita

                                  【AWSコスト削減の道 for 開発環境】NATゲートウェイ編 結論 NATゲートウェイを利用していない時間に対して、自動作成及び自動削除を行うことで、料金の約62%を低下 前提 以前ページにて紹介しているTerraoformを用いて環境を構築している Terraformを用いた開発環境について 本記事内で記載している料金については、2021/12/21時点の料金を表示している 料金は「東京リージョン」の料金を表示している 目次 前提 背景 本記事内の利用技術について 利用料金について 料金停止効果について Lambda内の処理について NATゲートウェイのライフサイクル 参考URL 概要 開発環境に使用しているNATを業務時間以外は削除する NATゲートウェイの作成及び削除は自動的に行う NATゲートウェイはEC2のように停止という概念がないため毎回、作成、削除を行う必要がある 背景 業

                                    【AWSコスト削減の道 for 開発環境】 NATゲートウェイ編 - Qiita
                                  • VoTTv2から出力したアノテーションをYOLOv5学習用に変換するスクリプト - Qiita

                                    遅れ馳せながらYOLOv5の転移学習をオリジナルのデータを使って実施してみたのですが、あまりの手軽さに驚きました。 ネット上にはYOLOv5の転移学習に関する優れた事例や紹介記事が多数ありますので、ここではその内容については触れませんが、私のようにAIに関する知識が無い人でも、手順通りに実施すればオリジナルのAIモデルが作れてしまいます。すごい。 殆どの作業が自動化されているので、特に問題となるような事は少ないのですが、それらの事例をトレースした際に「ちょっと面倒だな」と感じたデータセットの変換処理に関して、より作業を簡略化できるようにpythonスクリプトを作成しました。 私はアノテーションツールとしてVoTT v2.2.0を使用したのですが、出力されるデータセットのファイル形式がYOLOv5用のファイル形式に対応していないため、別途変換する必要があります。 変換の方法はいろいろあるみた

                                      VoTTv2から出力したアノテーションをYOLOv5学習用に変換するスクリプト - Qiita
                                    • [Python]namedtupleをdataclassに変更(_replace, _fieldsの互換) - Qiita

                                      namedtupleの実装 DataSupplyUnitLegacyはある時刻の複数銘柄の株価データをひとまとまりにするためのクラスです.フィールドについてはあまり気にしないで下さい. namedtupleを継承しているので,部分的に値を変えた新しいオブジェクトを返す_replaceメソッドと設定したアトリビュートの名前のタプルを返す_fieldsプロパティを持っています. field_list = ["names", # 銘柄名 "key_currency_index", # 基軸通貨のインデックス "datetime", # データの日時 "window", # データのウィンドウ "open_array", # [銘柄名, ウィンドウ(時間)]に対応する始値 "close_array", # [銘柄名, ウィンドウ(時間)]に対応する終値 "high_array", # [銘柄名,

                                        [Python]namedtupleをdataclassに変更(_replace, _fieldsの互換) - Qiita
                                      • 大量のBigQueryの日付別テーブルから特定の条件でレコードを削除する - yasuhisa's blog

                                        この記事はdatatech-jp Advent Calendar 2023の12日目の投稿です。本日は12/18ですが、Advent Calendarの空きがあったのでねじこみました。 背景 困ること: 実行時間が長い 脱線: レコードの削除時に考慮したいこと dry-runモードで何が実行されるかを分かるようにしておく バックアップ用にテーブルをコピーしておく ログはしっかりめに残しておく 削除に必要な最小の権限に絞ったサービスアカウント経由で実行する 複数回コマンドが実行されても問題ない冪等な設計にしておく 復旧用の手順もまとめておく テーブルの利用者に予めレコードの削除が起こることを伝える Pythonで並列にDELETE文を実行させる 背景 データ分析のコンテキストではBigQueryのテーブルに破壊的操作をする際、以下の場合が多いと思います。 CREATE OR REPLACE

                                          大量のBigQueryの日付別テーブルから特定の条件でレコードを削除する - yasuhisa's blog
                                        • クローラーの作り方 - Advanced 編 - Qiita

                                          LAPRAS アウトプットリレー7日目の記事です! こんにちは!LAPRAS クローラーエンジニアの @Chanmoro です! 先日クローラーの作り方 - Basic 編という記事を書かせて頂きましたが、今回の記事では「クローラーの作り方 - Advanced 編」と題しまして、本格的にクローラーを開発する際にどういう問題に直面するかと、クローラーをどのような設計にしておくとこれらの問題に対処しやすいメンテナブルなクローラーにできるかというのを簡単に紹介したいと思います。 クローラー運用でよくある問題の例 さて、クローラーの作り方 - Basic 編で紹介したような方法でミニマムなクローラーを実装することができますが、そこから更に定期的にクロールを繰り返してデータを更新する運用を始めると、大抵の場合で以下のような問題に直面することになります。 クロール先の HTML 構造が変化する クロ

                                            クローラーの作り方 - Advanced 編 - Qiita
                                          • 【AWS】DynamoDBからRDS Aurora (MySQL) へデータ移行する - Qiita

                                            DynamoDBからAurora MySQLへデータ移行することがあったので、その方法を書いていきます データ移行といっても1つのテーブルに保存されているデータを移行しただけなので、全テーブルのデータ移行ではないことはご了承ください 方法 DynamoDBからAurora MySQLへ移行する方法はいくつか考えられると思いますが、手っ取り早くかつ確実に移行するために、使い捨て(?)のPythonでコードを書きました 使い捨てといってもまたデータ移行することがあるかもしれないので使い回せるようにしました 実装 python3.8 (pipenv) pymysql boto3 コード まずはDynamoDBとAurora MySQLのモデルを作成します 標準ライブラリのdataclassを使用すると簡潔かつ綺麗に書くことができます あとポイントとして、DynamoDBのテーブルから全件取得する

                                              【AWS】DynamoDBからRDS Aurora (MySQL) へデータ移行する - Qiita
                                            • 【FastAPI】PydanticでIPv4Addressのインポートエラーが出る理由とは? - Qiita

                                              概要 FastAPIでpydanticを使ったコードを実行したら、以下のエラーが出た。 IPv4Addressとはなんぞや?pydanticと関係あるの?と思ったので調べてみました。 from pydantic import BaseModel File "pydantic/__init__.py", line 2, in init pydantic.__init__ File "pydantic/dataclasses.py", line 43, in init pydantic.dataclasses # | <blank> | No action: no method is added. | File "pydantic/error_wrappers.py", line 4, in init pydantic.error_wrappers File "pydantic/json.py

                                                【FastAPI】PydanticでIPv4Addressのインポートエラーが出る理由とは? - Qiita
                                              • [pyqtgraph] グラフのサイズ比率を設定する - Qiita

                                                やりたいこと 複数グラフを並べている時のサイズ比率を設定したい 環境 Mac OS Python 3.8.5 PyQt5 5.15.2 PyQt5-sip 12.8.1 pyqtgraph 0.11.1 pip install PyQt5 PyQt5-sip pyqtgraph コード プロット用にnumpyを使用しています。 pip install numpy """グラフのサイズ比率を設定する""" import dataclasses import itertools from typing import Optional import sys import numpy as np from PyQt5 import QtWidgets # ほぼ使わない import pyqtgraph as pg SAMPLE_DATA1 = np.linspace(-100, 100) ** 1

                                                  [pyqtgraph] グラフのサイズ比率を設定する - Qiita
                                                • [fondesk用bot]SlashCommandで表記ゆれに抗う - Qiita

                                                  はじめに 皆さんリモートワークしていますか?慣れてきましたか? 前回の記事で弊社がfondeskを導入し、メンションをつけてくれるbotを開発しましたよというお話をしました。(無事にfondeskは正式採用されたようです。) 今回は、メンションをつけるために必要になる、表記ゆれ対策用の辞書を更新するSlash Commandを開発した話です。 関連ツール&技術 今回紹介する機能の関連項目です。 Slack AWS API Gateway Lambda S3 Serverless Framework Python3.7 事の発端 前回紹介のbotを導入してから、良い感じにメンションがついているのを喜んでいたのですが、(見ないふりをしていた)事態が勃発しました。そう、表記ゆれです。。 田が「た」なのか「だ」なのか、漢字で投稿されるのかカタカナで投稿されるのか等々…少しずれた表記で投稿されたこと

                                                    [fondesk用bot]SlashCommandで表記ゆれに抗う - Qiita
                                                  • Python データクラスの初期化関数(__post_init__)を使う - MathPython

                                                    Python のデータクラスは変わった初期化があります。下は name といった変数が初期化されたクラスです。 from dataclasses import dataclass @dataclass class User: id: int = 0 name: str = '' password: str = '' u = User(id=2, name='Alice', password='abc') ここまでは問題なく、よくあるデータクラスの定義です。しかし、このクラスに __init__ を追加するとエラーになります。 初期化された変数をもつデータクラスが init をもつとき from dataclasses import dataclass @dataclass class User: id: int = 0 name: str = '' password: str = '' d

                                                    • gspread(およびgspread_dataframe)の利用方法について - Pirika Developers Blog

                                                      pythonからスプレッドシートを触るとき、gspread/gspread_dataframeなどのライブラリを利用することができます。 これらライブラリについて内部実装を見ながら、どのような使い方をするかまとめました。 前提・方針 スプレッドシートの操作はサービスアカウントを利用する Cloud FunctionsやCloud Runからスプレッドシートを自動更新できるようにするため ローカル環境では、サービスアカウントにimpersonateする セキュリティの観点から、サービスアカウントの秘密鍵をローカルにダウンロードしないようにするため なるべく、スプレッドシートへのアクセスは最小限にする Sheets APIではユーザごとに60リクエスト/分、プロジェクトごとに300リクエスト/分に制限されているため1 本書では書かないこと 以下の内容については、他の技術記事等で掲載されているた

                                                        gspread(およびgspread_dataframe)の利用方法について - Pirika Developers Blog
                                                      • BigQueryやPythonからAvroファイルに出力しようとしてDATETIME型でつまづいた - Qiita

                                                        10月からGoogle BigQueryを使い始めました。 データのimport/exportに、Apache Avro形式のファイルを使ってみましたので、その扱いについて記事にします。 Avro形式は、データだけでなくテーブルのスキーマ情報も持つので、テーブル作成のデータソースとしてjsonやcsvより便利です。 また、バイナリファイルなのでjsonやcsvよりも高速に処理できるそうです。 参考URL(感謝します) BigQueryのドキュメント Avroの仕様 Dataclasses Avro Schema Generator / Logical Types BigQueryの外部テーブルでAvroを扱った際にTIMESTAMPでハマった話 AvroファイルでDATETIME型を扱えるか? BigQueryのドキュメントによれば、 BigQueryのDATETIME型 == Avroの

                                                          BigQueryやPythonからAvroファイルに出力しようとしてDATETIME型でつまづいた - Qiita
                                                        • 見てわかる!最適化手法の比較 (2020) - Qiita

                                                          で、初期位置$(x, y) = (-1, 2)$で試しました。 やはりSMORMS3だけ鞍点に嵌まりますね... Santaはどこかへ行ってしまっていますが、一応戻ってくる様子が見えますね。 2021/1/3追加 グラフを追加しました。 うまく動作していなかったSMORMS3もしっかり動いてますね。よかったよかった。 -sin(x)/x-sin(y)/y+(x^2+y^2)/7 続いて です。これだけ他と違い$x, y \in [-5, 5]$で、初期位置は$(x, y) = (-3, 4)$となっています。 絶妙に鞍点に嵌る学習則と嵌らない学習則とを作成するために$\frac{x^2+y^2}{7}$を足しています。 Santaの学習則における$N$についてですが、ぼくが論文を読む限りだとミニバッチの数かなと感じたので$N=1$としていますが、$N=16$とするとしっかり収束するんですよ

                                                            見てわかる!最適化手法の比較 (2020) - Qiita
                                                          • PythonでボトムアップDDD 【ドメインサービス】 - Qiita

                                                            バージョン 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)

                                                              PythonでボトムアップDDD 【ドメインサービス】 - Qiita
                                                            • 3Dプリンタで使われるGコードをpythonで再現してみた - Qiita

                                                              はじめに とあるdiscordのコミュニティで3DプリンタのGコードを解読したいって話が出たので、 pythonで試しに解読してみた。 Gコードの仕様について Gコードについて調べてみたところ、下記のサイトが見つかった。 今回は単純に出力される形を見たいだけなので、G0とG1だけ見れば良さそうだ。 G0とG1はその後ろにX,Y,Zから始まる数値が出ていればその軸をその数値に合わせるようだ。 例えば、G1 X0 Z1 だったら、Y軸は触らずに(X, Z) = (0, 1)に移動する。移動量は前の座標次第となっている。 座標の位置を指定されていない限りはずっと同じ数値になるから一個以上前の情報を持っていなければ注意。 難易度的にはAtCoderのABCのC問題みたいな、「アルゴリズムとか考えなくていいから愚直に実装すればOK」のレベルだと感じた。 pythonコード 愚直に実装してみたのが次の

                                                                3Dプリンタで使われるGコードをpythonで再現してみた - Qiita
                                                              • Unity用ネットワークライブラリSynicSugar Vol.2 - Qiita

                                                                SynicSugar SynicSugarというネットワークライブラリを作って1年以上経ちました。Epic online servicesをリレーとマッチングサーバーに使ったUnity用のライブラリです。 特徴 無料 CCU制限なし フルメッシュのp2p ボイスチャット対応(最大16人) PC(LinuxはVC非対応)、モバイル、CSに対応しておりクロスプラットフォーム マッチメイクやホストマイグレーション、復活機能をライブラリ側でフルサポート 以下でSynicSugarの特色についての紹介をします。 サンプルについては3つほど用意してあるので、それを参考にしてください。機能を一通り見たいならChatというサンプルが全て詰め込んであってわかりやすいと思います。3D風のゲームになる予定のTank、初期に動作確認用に作ったReadHeartというターン制対戦ゲームの三つです。 ドキュメントにR

                                                                  Unity用ネットワークライブラリSynicSugar Vol.2 - Qiita
                                                                • Pythonのdataclasses.dataclassを使う - 偏った言語信者の垂れ流し

                                                                  Pythonのdataclasses.dataclassは普段からたまに使っていますが、良く使っている書き方を人に紹介するためにメモを残します。 dataclasses - データクラス - Python 3.12.2 ドキュメント dictと相互変換するクラス オブジェクトとdictで相互変換するクラスをdataclassで書くことがあります。 asdict 関数が便利です。リストで保持したいメンバー変数は、 field 関数を使って定義すれば、asdictでそのまま対象にできます。 また from_dict メソッドは厳密に実装するなら引数のチェックなどをしてもよいですが、可変長のキーワード引数としてそのままコンストラクタに渡すように書けば、実装はシンプルです。 コード main.py: from dacite import from_dict from dataclasses imp

                                                                    Pythonのdataclasses.dataclassを使う - 偏った言語信者の垂れ流し
                                                                  • dataclassのフィールドとして宣言するには型ヒントが必要 - Qiita

                                                                    環境 Python3.11.2 起きたこと dataclassでクラスTaskを定義しています。フィールドframe_countにはデフォルト値を指定したいです。 In [48]: @dataclass ...: class Task: ...: name: str ...: frame_count: int = 10 ...: In [49]: Task("foo", 5) Out[49]: Task(name='foo', frame_count=5) 「frmae_countには10を代入しているので、型ヒントを指定しなくてもmypyはintと推論してくれるだろう」と思い、型アノテーションintを取り除いてみました。 すると、インスタンス生成時に「引数が多すぎる」というTypeErrorが発生しました。 In [51]: @dataclass ...: class Task: ...

                                                                      dataclassのフィールドとして宣言するには型ヒントが必要 - Qiita
                                                                    • Pythonデータクラス徹底解説:使い方から最適化までマスター | とあるエンジニアのエソラゴト

                                                                      Pythonでクラスを扱う際、データの保持と簡単な操作に特化したデータクラスがあります。データクラスは、コードの簡潔性と可読性を向上させるために開発された機能で、効率的なコーディングに役立ちます。 この記事では、Pythonのデータクラスの概要や使い方を解説し、データクラスを活用して効率的にコードを書く方法をご紹介します。 データクラスの基本的な使い方から、フィールドアノテーション、自動生成されるメソッド、継承、イミュータブルなデータクラスの作成方法まで、幅広い知識を習得できます。 エソラ データクラスを上手に活用し、Python開発者としてのスキルを磨きましょう。 Pythonの勉強方法は、まとめ記事があります。 Pythonを勉強する時、何から勉強するか分からず、挫折します。初心者でも、中級者でも、レベルに合わせた勉強方法を分かりやすくまとめています。 初心者〜現場で活躍まで。挫折しな

                                                                      • 【ドメイン駆動設計】値オブジェクト「価格」の設計例

                                                                        🎯目的 ドメイン駆動設計の具体例を記載し、ドメイン駆動設計を実践できるようにする 💡前提 この記事では、実践ドメイン駆動設計 | ヴォーン・ヴァーノン, 髙木 正弘 |本 | 通販 | Amazonを参考にしています。 💡「価格」とは ここではECサイトで販売している商品の「価格」を取り上げます。尚、ここでの設計はあくまで例です。通常は扱うドメイン領域やユビキタス言語によって、設計が変わります。 商品の価格には、次の種類があります。 通常価格 割引価格 - 期間限定での割引 - 「5,000円以上のお買い上げで〜」などの条件付き割引 会員価格 ECサイトで会員になっている人限定の価格 会員のランク(プレミアム、スタンダード、...)などによって価格が変わることもある 通常価格 割引価格 会員価格 ✍️「価格」の設計 ✍️自己参照方式の実装パターン from __future__ im

                                                                          【ドメイン駆動設計】値オブジェクト「価格」の設計例
                                                                        • KLab の Server Side Camp に参加してきました

                                                                          はじめに 先日, 株式会社KLab(クラブ)さん (以降敬称略) の KLab Server Side Camp 第1回 (5日間) に参加してきました. 私は個人の遊び程度でしかサーバサイドを触ったことが無かったため, 実務をなさっている方のそばで学び質問できる環境はとてもありがたかったです. というわけで本稿ではその感想でも書いていこうと思います. 軽い振り返りなので技術的な内容は少なめです^^ また, 久々に記事書くので文章がおかしくなっているかも... 追記 (2021/01/19) メンターの methane さんによるKLab技術ブログ (「DSAS開発者の部屋」) は以下のツイートからどうぞ. 告知 KLab Server Side Camp 第2回 の募集が 1/24(月) 23:59 まで行われているので興味を持った方はぜひ!! KLab Server Side Camp

                                                                            KLab の Server Side Camp に参加してきました
                                                                          • Python3.7以上のデータ格納はdataclassを活用しよう - Qiita

                                                                            はじめに Pythonでデータを格納する際に辞書や普通のクラスを使っていませんか?Python3.7からはデータ格納に便利なdataclassデコレータが用意されています。 この記事では公式ドキュメントやPEP557の説明ではいまいち掴めない、どういった時に便利で、なぜ使うべきなのかという点に触れつつ、使い方を説明していきます。 なお、以前のバージョンではPython3.6に限りpip install dataclassesによって使えるようになります。執筆時点ではGoogle Colaboratoryの環境がPython3.6.9ですが、デフォルトでdataclassesがインストールされています。 想定読者 dataclassの存在を知ったが何なのかよく分からない人 可読性高くデータを扱いたい人 「前はこんな機能なかったし、自分は別に使わなくて良いよ・・・」と思っている人 よく見かける

                                                                              Python3.7以上のデータ格納はdataclassを活用しよう - Qiita
                                                                            • 文章を分類するウェブアプリをデプロイしよう(ウェブアプリ編) - deepblue

                                                                              文章を分類するウェブアプリを作ろう ラーメン食べてますか。 ラーメンに関するツイートについて札幌と福岡のどちらでツイートされたか判別するウェブアプリをデプロイしたので、「モデル編」「ウェブアプリ編」に分けて記録を残そうと思います。こちらは「ウェブアプリ編」です(モデル編)。 FastAPIもGoogle App Engineもわかってないところが大量にあってお恥ずかしい限りですが、とりあえず動くものができたので良しとします。 完成品はこちら 利用した技術とサービス バックエンドの言語:python ディープラーニングライブラリ:pytorch, torchtext 自然言語処理モデル:双方向LSTM ウェブフレームワーク:FastAPI デプロイ:Google App Engine, Docker, Git 最終的にはGit(GitHub)に上げてからGoogle App Engineにデ

                                                                                文章を分類するウェブアプリをデプロイしよう(ウェブアプリ編) - deepblue
                                                                              • DataClass 3.10での機能追加(kw_only, slots) - Keep on moving

                                                                                こんにちはPython界のレアキャラです。 dataclassから機能が追加され attrsであった機能が取り込まれました。 以前書いた記事のアップデートをしておこうと思います。 TL;DR dataclassにkw_onlyと slotsが入った attrsのつかいどころ ボイラープレートコードを避けたい.(特にdataclassにない機能を利用したい) 今Python3.9 以下を使っているし、今後dataclassを使いたい. ドキュメントをきちんと読むと色々書いてある docs.python.org kw_only https://docs.python.org/ja/3.10/glossary.html#term-parameter キーワード専用フィールドを設定するためのもの. >>> # クラスの全フィールドをキーワード専用にするもの >>> @dataclass(kw_on

                                                                                  DataClass 3.10での機能追加(kw_only, slots) - Keep on moving
                                                                                • エージェントシミュレーションやってみた1(コンビニ) - Qiita

                                                                                  エージェントシミュレーションとは? マルチエージェントシステム(Multi-Agent System、MAS)とは、複数のエージェントから構成されるシステムであり、個々のエージェントやモノリシックなシステムでは困難な課題をシステム全体として達成する。 それぞれ異なった判定アルゴリズムなどの特徴(キャラクタリスティック)を持ったエージェントモデルを用い(よってマルチエージェントと呼ばれる)、複数かつある一定以上のエージェントを多数設定し、人工社会を構成しそれぞれ特徴の異なったエージェントの相互作用をシミュレーションするシステムである。(wikipediaより) すなわち人や車などをエージェントとし、それらをモデリング、観察することです。大学の授業でエージェントシミュレーションをする機会があったので、少し実装してみようと思います。(pythonのTKinterを使用) テーマ:コンビニなどの小

                                                                                    エージェントシミュレーションやってみた1(コンビニ) - Qiita