Repository: pydantic/pydantic

Issue:
Implicit int limits
### Initial Checks

- [X] I confirm that I'm using Pydantic V2

### Description

Some of the older messaging around the move to v2 and the current data conversion table in the docs say that you use i64 values to internally represent python `int`. I expected this to lead to either error messages when trying to validate numbers outside of that range or (less ideally) have them be converted to the max/min. But running the code below just prints `True` every time. Is that the intended behaviour? Are you not using i64's internally anymore?

### Example Code

```Python
class MyModel(BaseModel):
    a: int

print(MyModel(a=2**70).a == 2**70)
print(MyModel.model_validate_json(f"""{{"a": {2**70}}}""").a == 2**70)

py_int = TypeAdapter(int)

print(py_int.validate_python(2**70) == 2**70)
print(py_int.validate_json(f"{2**70}") == 2**70)
```


### Python, Pydantic & OS Version

```Text
pydantic version: 2.0.3
pydantic-core version: 2.3.0 release build profile
python version: 3.11.4 | packaged by Anaconda, Inc. | (main, Jul  5 2023, 13:47:18) [MSC v.1916 64 bit (AMD64)]
platform: Windows-10-10.0.19045-SP0
optional deps. installed: ['typing-extensions'];
```


Selected Assignee: @davidhewitt


Discussion:
I think we recently fixed this to handle large numbers, up to the limits of python (which IIRC are ~4000 decimal digits). I think we use i64s when the value can fit, and otherwise convert to a python int. 

If there are places in the docs that you think should be updated (probably an oversight on our part), please let us know and we can fix them.

Resolving patch:
diff --git a/docs/plugins/conversion_table.py b/docs/plugins/conversion_table.py
--- a/docs/plugins/conversion_table.py
+++ b/docs/plugins/conversion_table.py
@@ -165,7 +165,7 @@ def filtered(self, predicate: typing.Callable[[Row], bool]) -> ConversionTable:
         strict=True,
         python_input=True,
         json_input=True,
-        condition='Max abs value `2^64` as `i64` is used internally; `bool` is explicitly forbidden.',
+        condition='`bool` is explicitly forbidden.',
         invalid_examples=[2**64, True, False],
         core_schemas=[core_schema.IntSchema],
     ),
@@ -174,7 +174,6 @@ def filtered(self, predicate: typing.Callable[[Row], bool]) -> ConversionTable:
         int,
         python_input=True,
         json_input=True,
-        condition='`i64`. Limits `numbers > (2 ^ 63) - 1` to `(2 ^ 63) - 1`.',
         core_schemas=[core_schema.IntSchema],
     ),
     Row(
@@ -182,7 +181,7 @@ def filtered(self, predicate: typing.Callable[[Row], bool]) -> ConversionTable:
         float,
         python_input=True,
         json_input=True,
-        condition='`i64`, Must be exact int, e.g. `val % 1 == 0`, raises error for `nan`, `inf`.',
+        condition='Must be exact int, e.g. `val % 1 == 0`, raises error for `nan`, `inf`.',
         valid_examples=[2.0],
         invalid_examples=[2.1, 2.2250738585072011e308, float('nan'), float('inf')],
         core_schemas=[core_schema.IntSchema],
@@ -191,7 +190,7 @@ def filtered(self, predicate: typing.Callable[[Row], bool]) -> ConversionTable:
         int,
         Decimal,
         python_input=True,
-        condition='`i64`, Must be exact int, e.g. `val % 1 == 0`.',
+        condition='Must be exact int, e.g. `val % 1 == 0`.',
         valid_examples=[Decimal(2.0)],
         invalid_examples=[Decimal(2.1)],
         core_schemas=[core_schema.IntSchema],
@@ -209,7 +208,7 @@ def filtered(self, predicate: typing.Callable[[Row], bool]) -> ConversionTable:
         str,
         python_input=True,
         json_input=True,
-        condition='`i64`, Must be numeric only, e.g. `[0-9]+`.',
+        condition='Must be numeric only, e.g. `[0-9]+`.',
         valid_examples=['123'],
         invalid_examples=['test', '123x'],
         core_schemas=[core_schema.IntSchema],
@@ -218,7 +217,7 @@ def filtered(self, predicate: typing.Callable[[Row], bool]) -> ConversionTable:
         int,
         bytes,
         python_input=True,
-        condition='`i64`, Must be numeric only, e.g. `[0-9]+`.',
+        condition='Must be numeric only, e.g. `[0-9]+`.',
         valid_examples=[b'123'],
         invalid_examples=[b'test', b'123x'],
         core_schemas=[core_schema.IntSchema],


Test patch: