Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix millisecond fraction being handled with wrong scale #65

Merged
merged 7 commits into from
Jun 26, 2024

Conversation

davidhewitt
Copy link
Contributor

Fixes #61

Copy link
Member

@sydney-runkle sydney-runkle left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this result in any broken tests in either pydantic or pydantic-core?

@davidhewitt
Copy link
Contributor Author

I didn't try, but I wouldn't be concerned if it did. The behaviour is currently wrong and corrupting data 😬

@davidhewitt
Copy link
Contributor Author

Well, I guess you could make the argument that even if the timestamp is a millisecond timestamp the fraction is always treated as seconds fraction, but I think that's just extremely non intuitive and likely to trip everyone up.

@sydney-runkle
Copy link
Member

Well, I guess you could make the argument that even if the timestamp is a millisecond timestamp the fraction is always treated as seconds fraction, but I think that's just extremely non intuitive and likely to trip everyone up.

Agreed, I think this fix makes sense.

Copy link
Member

@sydney-runkle sydney-runkle left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A few questions / comments, but looks great overall!

src/date.rs Outdated Show resolved Hide resolved
src/datetime.rs Outdated
Comment on lines 363 to 366
// FIXME should we error if the fraction is too long?
// We have TimeConfig truncate / error option.
(fract_integers as f64 * multiple).round() as u32,
config,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would say if we use a max_digits pattern above, it seems intuitive to then error if the number of decimal digits violates that standard.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's a behavioural change but I think correct given the spirit of the config.

Copy link
Member

@sydney-runkle sydney-runkle left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice, I feel particularly good about the new MilisecondFractionTooLong given the existence of SecondFractionTooLong already!

src/datetime.rs Show resolved Hide resolved
src/datetime.rs Outdated Show resolved Hide resolved
@davidhewitt davidhewitt enabled auto-merge (squash) June 26, 2024 15:50
@davidhewitt davidhewitt merged commit 11d6365 into main Jun 26, 2024
7 checks passed
@davidhewitt davidhewitt deleted the dh/fix-millisecond-fraction branch June 26, 2024 15:50
@sydney-runkle
Copy link
Member

Truncation note looks great! Thanks.

Comment on lines +360 to +362
let Some(fract_integers) = int_parse_bytes(fract) else {
return Err(e);
};
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for fixing my issue (#61). But I wonder about this strategy here, reusing an integer parsing function for a fractional part:

  • does this handle leading zeros correctly? (I think yes, thanks to the $10^d$ scaling trick.)
  • does this handle other aspects of integer notation correctly, e.g. signs? (I think not.)
  • does this handle long fractions if the "precision overflow" check isn't used? (I think yes, thanks to the $10^d$ scaling trick.)

As an example, consider an input like 1711445175.+07186 which should probably be invalid, not parsed as if the + were a zero.

Perhaps the i = int_parse_bytes(fract) function could be copied as a (i, magnitude) = fract_parse_bytes(fract) function, where the magnitude would be safer than relying on fract.len()?

@sydney-runkle
Copy link
Member

@latk,

See #71 for a rework of this - I think most of your questions are addressed.

github-actions bot pushed a commit to Boeing/meta-openembedded-contrib that referenced this pull request Jul 10, 2024
v2.8.2 (2024-07-03)
   * Fix issue with assertion caused by pluggable schema validator by
     @dmontagu in #9838

v2.8.1 (2024-07-03)
  * Bump ruff to v0.5.0 and pyright to v1.1.369 by @sydney-runkle in #9801
  * Bump pydantic-core to v2.20.1, pydantic-extra-types to v2.9.0 by
    @sydney-runkle in #9832
  * Fix breaking change in to_snake from v2.7 -> v2.8 by @sydney-runkle in #9812
  * Fix list constraint json schema application by @sydney-runkle in #9818
  * Support time duration more than 23 by @nix010 in pydantic/speedate#64
  * Fix millisecond fraction being handled with the wrong scale by
    @davidhewitt in pydantic/speedate#65
  * Handle negative fractional durations correctly by @sydney-runkle in
    pydantic/speedate#71

v2.8.0 (2024-07-01)
See:
  - https://docs.pydantic.dev/latest/changelog/#v280-2024-07-01
  - https://pydantic.dev/articles/pydantic-v2-8-release

Full changelog:
pydantic/pydantic@v2.7.4...v2.8.2

Signed-off-by: Tim Orling <[email protected]>
erichesse added a commit to robert-koch-institut/mex-extractors that referenced this pull request Jul 17, 2024
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [pydantic](https://togithub.com/pydantic/pydantic)
([changelog](https://docs.pydantic.dev/latest/changelog/)) |
project.dependencies | minor | `==2.7.4` -> `==2.8.2` |

---

### Release Notes

<details>
<summary>pydantic/pydantic (pydantic)</summary>

###
[`v2.8.2`](https://togithub.com/pydantic/pydantic/blob/HEAD/HISTORY.md#v282-2024-07-03)

[Compare
Source](https://togithub.com/pydantic/pydantic/compare/v2.8.1...v2.8.2)

[GitHub
release](https://togithub.com/pydantic/pydantic/releases/tag/v2.8.2)

##### What's Changed

##### Fixes

- Fix issue with assertion caused by pluggable schema validator by
[@&#8203;dmontagu](https://togithub.com/dmontagu) in
[#&#8203;9838](https://togithub.com/pydantic/pydantic/pull/9838)

###
[`v2.8.1`](https://togithub.com/pydantic/pydantic/blob/HEAD/HISTORY.md#v281-2024-07-03)

[Compare
Source](https://togithub.com/pydantic/pydantic/compare/v2.8.0...v2.8.1)

[GitHub
release](https://togithub.com/pydantic/pydantic/releases/tag/v2.8.1)

##### What's Changed

##### Packaging

- Bump `ruff` to `v0.5.0` and `pyright` to `v1.1.369` by
[@&#8203;sydney-runkle](https://togithub.com/sydney-runkle) in
[#&#8203;9801](https://togithub.com/pydantic/pydantic/pull/9801)
- Bump `pydantic-core` to `v2.20.1`, `pydantic-extra-types` to `v2.9.0`
by [@&#8203;sydney-runkle](https://togithub.com/sydney-runkle) in
[#&#8203;9832](https://togithub.com/pydantic/pydantic/pull/9832)

##### Fixes

- Fix breaking change in `to_snake` from v2.7 -> v2.8 by
[@&#8203;sydney-runkle](https://togithub.com/sydney-runkle) in
[#&#8203;9812](https://togithub.com/pydantic/pydantic/pull/9812)
- Fix list constraint json schema application by
[@&#8203;sydney-runkle](https://togithub.com/sydney-runkle) in
[#&#8203;9818](https://togithub.com/pydantic/pydantic/pull/9818)
- Support time duration more than 23 by
[@&#8203;nix010](https://togithub.com/nix010) in
[pydantic/speedate#64](https://togithub.com/pydantic/speedate/pull/64)
- Fix millisecond fraction being handled with the wrong scale by
[@&#8203;davidhewitt](https://togithub.com/davidhewitt) in
[pydantic/speedate#65](https://togithub.com/pydantic/speedate/pull/65)
- Handle negative fractional durations correctly by
[@&#8203;sydney-runkle](https://togithub.com/sydney-runkle) in
[pydantic/speedate#71](https://togithub.com/pydantic/speedate/pull/71)

###
[`v2.8.0`](https://togithub.com/pydantic/pydantic/blob/HEAD/HISTORY.md#v280-2024-07-01)

[Compare
Source](https://togithub.com/pydantic/pydantic/compare/v2.7.4...v2.8.0)

[GitHub
release](https://togithub.com/pydantic/pydantic/releases/tag/v2.8.0)

The code released in v2.8.0 is functionally identical to that of
v2.8.0b1.

##### What's Changed

##### Packaging

- Update citation version automatically with new releases by
[@&#8203;sydney-runkle](https://togithub.com/sydney-runkle) in
[#&#8203;9673](https://togithub.com/pydantic/pydantic/pull/9673)
- Bump pyright to `v1.1.367` and add type checking tests for pipeline
API by [@&#8203;adriangb](https://togithub.com/adriangb) in
[#&#8203;9674](https://togithub.com/pydantic/pydantic/pull/9674)
- Update `pydantic.v1` stub to `v1.10.17` by
[@&#8203;sydney-runkle](https://togithub.com/sydney-runkle) in
[#&#8203;9707](https://togithub.com/pydantic/pydantic/pull/9707)
- General package updates to prep for `v2.8.0b1` by
[@&#8203;sydney-runkle](https://togithub.com/sydney-runkle) in
[#&#8203;9741](https://togithub.com/pydantic/pydantic/pull/9741)
- Bump `pydantic-core` to `v2.20.0` by
[@&#8203;sydney-runkle](https://togithub.com/sydney-runkle) in
[#&#8203;9745](https://togithub.com/pydantic/pydantic/pull/9745)
- Add support for Python 3.13 by
[@&#8203;sydney-runkle](https://togithub.com/sydney-runkle) in
[#&#8203;9743](https://togithub.com/pydantic/pydantic/pull/9743)
- Update `pdm` version used for `pdm.lock` to v2.16.1 by
[@&#8203;sydney-runkle](https://togithub.com/sydney-runkle) in
[#&#8203;9761](https://togithub.com/pydantic/pydantic/pull/9761)
- Update to `ruff` `v0.4.8` by
[@&#8203;Viicos](https://togithub.com/Viicos) in
[#&#8203;9585](https://togithub.com/pydantic/pydantic/pull/9585)

##### New Features

- Experimental: support `defer_build` for `TypeAdapter` by
[@&#8203;MarkusSintonen](https://togithub.com/MarkusSintonen) in
[#&#8203;8939](https://togithub.com/pydantic/pydantic/pull/8939)
- Implement `deprecated` field in json schema by
[@&#8203;NeevCohen](https://togithub.com/NeevCohen) in
[#&#8203;9298](https://togithub.com/pydantic/pydantic/pull/9298)
- Experimental: Add pipeline API by
[@&#8203;adriangb](https://togithub.com/adriangb) in
[#&#8203;9459](https://togithub.com/pydantic/pydantic/pull/9459)
- Add support for programmatic title generation by
[@&#8203;NeevCohen](https://togithub.com/NeevCohen) in
[#&#8203;9183](https://togithub.com/pydantic/pydantic/pull/9183)
- Implement `fail_fast` feature by
[@&#8203;uriyyo](https://togithub.com/uriyyo) in
[#&#8203;9708](https://togithub.com/pydantic/pydantic/pull/9708)
- Add `ser_json_inf_nan='strings'` mode to produce valid JSON by
[@&#8203;josh-newman](https://togithub.com/josh-newman) in
[pydantic/pydantic-core#1307](https://togithub.com/pydantic/pydantic-core/pull/1307)

##### Changes

- Add warning when "alias" is set in ignored `Annotated` field by
[@&#8203;nix010](https://togithub.com/nix010) in
[#&#8203;9170](https://togithub.com/pydantic/pydantic/pull/9170)
- Support serialization of some serializable defaults in JSON schema by
[@&#8203;sydney-runkle](https://togithub.com/sydney-runkle) in
[#&#8203;9624](https://togithub.com/pydantic/pydantic/pull/9624)
- Relax type specification for `__validators__` values in `create_model`
by [@&#8203;sydney-runkle](https://togithub.com/sydney-runkle) in
[#&#8203;9697](https://togithub.com/pydantic/pydantic/pull/9697)
- **Breaking Change:** Improve `smart` union matching logic by
[@&#8203;sydney-runkle](https://togithub.com/sydney-runkle) in
[pydantic/pydantic-core#1322](https://togithub.com/pydantic/pydantic-core/pull/1322)
You can read more about our `smart` union matching logic
[here](https://docs.pydantic.dev/dev/concepts/unions/#smart-mode). In
some cases, if the old behavior
is desired, you can switch to `left-to-right` mode and change the order
of your `Union` members.

##### Performance

##### Internal Improvements

- ⚡️ Speed up `_display_error_loc()` by 25% in
`pydantic/v1/error_wrappers.py` by
[@&#8203;misrasaurabh1](https://togithub.com/misrasaurabh1) in
[#&#8203;9653](https://togithub.com/pydantic/pydantic/pull/9653)
- ⚡️ Speed up `_get_all_json_refs()` by 34% in `pydantic/json_schema.py`
by [@&#8203;misrasaurabh1](https://togithub.com/misrasaurabh1) in
[#&#8203;9650](https://togithub.com/pydantic/pydantic/pull/9650)
- ⚡️ Speed up `is_pydantic_dataclass()` by 41% in
`pydantic/dataclasses.py` by
[@&#8203;misrasaurabh1](https://togithub.com/misrasaurabh1) in
[#&#8203;9652](https://togithub.com/pydantic/pydantic/pull/9652)
- ⚡️ Speed up `to_snake()` by 27% in `pydantic/alias_generators.py` by
[@&#8203;misrasaurabh1](https://togithub.com/misrasaurabh1) in
[#&#8203;9747](https://togithub.com/pydantic/pydantic/pull/9747)
- ⚡️ Speed up `unwrap_wrapped_function()` by 93% in
`pydantic/_internal/_decorators.py` by
[@&#8203;misrasaurabh1](https://togithub.com/misrasaurabh1) in
[#&#8203;9727](https://togithub.com/pydantic/pydantic/pull/9727)

##### Fixes

- Replace `__spec__.parent` with `__package__` by
[@&#8203;hramezani](https://togithub.com/hramezani) in
[#&#8203;9331](https://togithub.com/pydantic/pydantic/pull/9331)
- Fix Outputted Model JSON Schema for `Sequence` type by
[@&#8203;anesmemisevic](https://togithub.com/anesmemisevic) in
[#&#8203;9303](https://togithub.com/pydantic/pydantic/pull/9303)
- Fix typing of `_frame_depth` by
[@&#8203;Viicos](https://togithub.com/Viicos) in
[#&#8203;9353](https://togithub.com/pydantic/pydantic/pull/9353)
- Make `ImportString` json schema compatible by
[@&#8203;amitschang](https://togithub.com/amitschang) in
[#&#8203;9344](https://togithub.com/pydantic/pydantic/pull/9344)
- Hide private attributes (`PrivateAttr`) from `__init__` signature in
type checkers by [@&#8203;idan22moral](https://togithub.com/idan22moral)
in [#&#8203;9293](https://togithub.com/pydantic/pydantic/pull/9293)
- Make detection of `TypeVar` defaults robust to the CPython `PEP-696`
implementation by
[@&#8203;AlexWaygood](https://togithub.com/AlexWaygood) in
[#&#8203;9426](https://togithub.com/pydantic/pydantic/pull/9426)
- Fix usage of `PlainSerializer` with builtin types by
[@&#8203;Viicos](https://togithub.com/Viicos) in
[#&#8203;9450](https://togithub.com/pydantic/pydantic/pull/9450)
- Add more robust custom validation examples by
[@&#8203;ChrisPappalardo](https://togithub.com/ChrisPappalardo) in
[#&#8203;9468](https://togithub.com/pydantic/pydantic/pull/9468)
- Fix ignored `strict` specification for
`StringConstraint(strict=False)` by
[@&#8203;vbmendes](https://togithub.com/vbmendes) in
[#&#8203;9476](https://togithub.com/pydantic/pydantic/pull/9476)
- Use `Self` where possible by
[@&#8203;Viicos](https://togithub.com/Viicos) in
[#&#8203;9479](https://togithub.com/pydantic/pydantic/pull/9479)
- Do not alter `RootModel.model_construct` signature in the `mypy`
plugin by [@&#8203;Viicos](https://togithub.com/Viicos) in
[#&#8203;9480](https://togithub.com/pydantic/pydantic/pull/9480)
- Fixed type hint of `validation_context` by
[@&#8203;OhioDschungel6](https://togithub.com/OhioDschungel6) in
[#&#8203;9508](https://togithub.com/pydantic/pydantic/pull/9508)
- Support context being passed to TypeAdapter's
`dump_json`/`dump_python` by
[@&#8203;alexcouper](https://togithub.com/alexcouper) in
[#&#8203;9495](https://togithub.com/pydantic/pydantic/pull/9495)
- Updates type signature for `Field()` constructor by
[@&#8203;bjmc](https://togithub.com/bjmc) in
[#&#8203;9484](https://togithub.com/pydantic/pydantic/pull/9484)
- Improve builtin alias generators by
[@&#8203;sydney-runkle](https://togithub.com/sydney-runkle) in
[#&#8203;9561](https://togithub.com/pydantic/pydantic/pull/9561)
- Fix typing of `TypeAdapter` by
[@&#8203;Viicos](https://togithub.com/Viicos) in
[#&#8203;9570](https://togithub.com/pydantic/pydantic/pull/9570)
- Add fallback default value for private fields in `__setstate__` of
BaseModel by [@&#8203;anhpham1509](https://togithub.com/anhpham1509) in
[#&#8203;9584](https://togithub.com/pydantic/pydantic/pull/9584)
- Support `PEP 746` by [@&#8203;adriangb](https://togithub.com/adriangb)
in [#&#8203;9587](https://togithub.com/pydantic/pydantic/pull/9587)
- Allow validator and serializer functions to have default values by
[@&#8203;Viicos](https://togithub.com/Viicos) in
[#&#8203;9478](https://togithub.com/pydantic/pydantic/pull/9478)
- Fix bug with mypy plugin's handling of covariant `TypeVar` fields by
[@&#8203;dmontagu](https://togithub.com/dmontagu) in
[#&#8203;9606](https://togithub.com/pydantic/pydantic/pull/9606)
- Fix multiple annotation / constraint application logic by
[@&#8203;sydney-runkle](https://togithub.com/sydney-runkle) in
[#&#8203;9623](https://togithub.com/pydantic/pydantic/pull/9623)
- Respect `regex` flags in validation and json schema by
[@&#8203;sydney-runkle](https://togithub.com/sydney-runkle) in
[#&#8203;9591](https://togithub.com/pydantic/pydantic/pull/9591)
- Fix type hint on `IpvAnyAddress` by
[@&#8203;sydney-runkle](https://togithub.com/sydney-runkle) in
[#&#8203;9640](https://togithub.com/pydantic/pydantic/pull/9640)
- Allow a field specifier on `__pydantic_extra__` by
[@&#8203;dmontagu](https://togithub.com/dmontagu) in
[#&#8203;9659](https://togithub.com/pydantic/pydantic/pull/9659)
- Use normalized case for file path comparison by
[@&#8203;sydney-runkle](https://togithub.com/sydney-runkle) in
[#&#8203;9737](https://togithub.com/pydantic/pydantic/pull/9737)
- Modify constraint application logic to allow field constraints on
`Optional[Decimal]` by [@&#8203;lazyhope](https://togithub.com/lazyhope)
in [#&#8203;9754](https://togithub.com/pydantic/pydantic/pull/9754)
- `validate_call` type params fix by
[@&#8203;sydney-runkle](https://togithub.com/sydney-runkle) in
[#&#8203;9760](https://togithub.com/pydantic/pydantic/pull/9760)
- Check all warnings returned by pytest.warns() by
[@&#8203;s-t-e-v-e-n-k](https://togithub.com/s-t-e-v-e-n-k) in
[#&#8203;9702](https://togithub.com/pydantic/pydantic/pull/9702)
- Reuse `re.Pattern` object in regex patterns to allow for regex flags
by [@&#8203;sydney-runkle](https://togithub.com/sydney-runkle) in
[pydantic/pydantic-core#1318](https://togithub.com/pydantic/pydantic-core/pull/1318)

##### New Contributors

- [@&#8203;idan22moral](https://togithub.com/idan22moral) made their
first contribution in
[#&#8203;9294](https://togithub.com/pydantic/pydantic/pull/9294)
- [@&#8203;anesmemisevic](https://togithub.com/anesmemisevic) made their
first contribution in
[#&#8203;9303](https://togithub.com/pydantic/pydantic/pull/9303)
- [@&#8203;max-muoto](https://togithub.com/max-muoto) made their first
contribution in
[#&#8203;9338](https://togithub.com/pydantic/pydantic/pull/9338)
- [@&#8203;amitschang](https://togithub.com/amitschang) made their first
contribution in
[#&#8203;9344](https://togithub.com/pydantic/pydantic/pull/9344)
- [@&#8203;paulmartin91](https://togithub.com/paulmartin91) made their
first contribution in
[#&#8203;9410](https://togithub.com/pydantic/pydantic/pull/9410)
- [@&#8203;OhioDschungel6](https://togithub.com/OhioDschungel6) made
their first contribution in
[#&#8203;9405](https://togithub.com/pydantic/pydantic/pull/9405)
- [@&#8203;AlexWaygood](https://togithub.com/AlexWaygood) made their
first contribution in
[#&#8203;9426](https://togithub.com/pydantic/pydantic/pull/9426)
- [@&#8203;kinuax](https://togithub.com/kinuax) made their first
contribution in
[#&#8203;9433](https://togithub.com/pydantic/pydantic/pull/9433)
-
[@&#8203;antoni-jamiolkowski](https://togithub.com/antoni-jamiolkowski)
made their first contribution in
[#&#8203;9431](https://togithub.com/pydantic/pydantic/pull/9431)
- [@&#8203;candleindark](https://togithub.com/candleindark) made their
first contribution in
[#&#8203;9448](https://togithub.com/pydantic/pydantic/pull/9448)
- [@&#8203;nix010](https://togithub.com/nix010) made their first
contribution in
[#&#8203;9170](https://togithub.com/pydantic/pydantic/pull/9170)
- [@&#8203;tomy0000000](https://togithub.com/tomy0000000) made their
first contribution in
[#&#8203;9457](https://togithub.com/pydantic/pydantic/pull/9457)
- [@&#8203;vbmendes](https://togithub.com/vbmendes) made their first
contribution in
[#&#8203;9470](https://togithub.com/pydantic/pydantic/pull/9470)
- [@&#8203;micheleAlberto](https://togithub.com/micheleAlberto) made
their first contribution in
[#&#8203;9471](https://togithub.com/pydantic/pydantic/pull/9471)
- [@&#8203;ChrisPappalardo](https://togithub.com/ChrisPappalardo) made
their first contribution in
[#&#8203;9468](https://togithub.com/pydantic/pydantic/pull/9468)
- [@&#8203;blueTurtz](https://togithub.com/blueTurtz) made their first
contribution in
[#&#8203;9475](https://togithub.com/pydantic/pydantic/pull/9475)
- [@&#8203;WinterBlue16](https://togithub.com/WinterBlue16) made their
first contribution in
[#&#8203;9477](https://togithub.com/pydantic/pydantic/pull/9477)
- [@&#8203;bittner](https://togithub.com/bittner) made their first
contribution in
[#&#8203;9500](https://togithub.com/pydantic/pydantic/pull/9500)
- [@&#8203;alexcouper](https://togithub.com/alexcouper) made their first
contribution in
[#&#8203;9495](https://togithub.com/pydantic/pydantic/pull/9495)
- [@&#8203;bjmc](https://togithub.com/bjmc) made their first
contribution in
[#&#8203;9484](https://togithub.com/pydantic/pydantic/pull/9484)
- [@&#8203;pjvv](https://togithub.com/pjvv) made their first
contribution in
[#&#8203;9529](https://togithub.com/pydantic/pydantic/pull/9529)
- [@&#8203;nedbat](https://togithub.com/nedbat) made their first
contribution in
[#&#8203;9530](https://togithub.com/pydantic/pydantic/pull/9530)
- [@&#8203;gunnellEvan](https://togithub.com/gunnellEvan) made their
first contribution in
[#&#8203;9469](https://togithub.com/pydantic/pydantic/pull/9469)
- [@&#8203;jaymbans](https://togithub.com/jaymbans) made their first
contribution in
[#&#8203;9531](https://togithub.com/pydantic/pydantic/pull/9531)
- [@&#8203;MarcBresson](https://togithub.com/MarcBresson) made their
first contribution in
[#&#8203;9534](https://togithub.com/pydantic/pydantic/pull/9534)
- [@&#8203;anhpham1509](https://togithub.com/anhpham1509) made their
first contribution in
[#&#8203;9584](https://togithub.com/pydantic/pydantic/pull/9584)
- [@&#8203;K-dash](https://togithub.com/K-dash) made their first
contribution in
[#&#8203;9595](https://togithub.com/pydantic/pydantic/pull/9595)
- [@&#8203;s-t-e-v-e-n-k](https://togithub.com/s-t-e-v-e-n-k) made their
first contribution in
[#&#8203;9527](https://togithub.com/pydantic/pydantic/pull/9527)
- [@&#8203;airwoodix](https://togithub.com/airwoodix) made their first
contribution in
[#&#8203;9506](https://togithub.com/pydantic/pydantic/pull/9506)
- [@&#8203;misrasaurabh1](https://togithub.com/misrasaurabh1) made their
first contribution in
[#&#8203;9653](https://togithub.com/pydantic/pydantic/pull/9653)
- [@&#8203;AlessandroMiola](https://togithub.com/AlessandroMiola) made
their first contribution in
[#&#8203;9740](https://togithub.com/pydantic/pydantic/pull/9740)
- [@&#8203;mylapallilavanyaa](https://togithub.com/mylapallilavanyaa)
made their first contribution in
[#&#8203;9746](https://togithub.com/pydantic/pydantic/pull/9746)
- [@&#8203;lazyhope](https://togithub.com/lazyhope) made their first
contribution in
[#&#8203;9754](https://togithub.com/pydantic/pydantic/pull/9754)
- [@&#8203;YassinNouh21](https://togithub.com/YassinNouh21) made their
first contribution in
[#&#8203;9759](https://togithub.com/pydantic/pydantic/pull/9759)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://togithub.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40MjguMSIsInVwZGF0ZWRJblZlciI6IjM3LjQyOC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: erichesse <[email protected]>
github-actions bot pushed a commit to Boeing/meta-openembedded-contrib that referenced this pull request Aug 8, 2024
v2.8.2 (2024-07-03)
   * Fix issue with assertion caused by pluggable schema validator by
     @dmontagu in #9838

v2.8.1 (2024-07-03)
  * Bump ruff to v0.5.0 and pyright to v1.1.369 by @sydney-runkle in #9801
  * Bump pydantic-core to v2.20.1, pydantic-extra-types to v2.9.0 by
    @sydney-runkle in #9832
  * Fix breaking change in to_snake from v2.7 -> v2.8 by @sydney-runkle in #9812
  * Fix list constraint json schema application by @sydney-runkle in #9818
  * Support time duration more than 23 by @nix010 in pydantic/speedate#64
  * Fix millisecond fraction being handled with the wrong scale by
    @davidhewitt in pydantic/speedate#65
  * Handle negative fractional durations correctly by @sydney-runkle in
    pydantic/speedate#71

v2.8.0 (2024-07-01)
See:
  - https://docs.pydantic.dev/latest/changelog/#v280-2024-07-01
  - https://pydantic.dev/articles/pydantic-v2-8-release

Full changelog:
pydantic/pydantic@v2.7.4...v2.8.2

Signed-off-by: Tim Orling <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Millisecond timestamps parsed incorrectly
3 participants