diff --git a/stone/backends/python_helpers.py b/stone/backends/python_helpers.py
index a3c4385..fa58f91 100644
--- a/stone/backends/python_helpers.py
+++ b/stone/backends/python_helpers.py
@@ -37,12 +37,12 @@ _type_table = {
     Float32: 'float',
     Float64: 'float',
     Int32: 'int',
-    Int64: 'long',
+    Int64: 'int',
     List: 'list',
     String: 'str',
     Timestamp: 'datetime',
-    UInt32: 'long',
-    UInt64: 'long',
+    UInt32: 'int',
+    UInt64: 'int',
 }
 
 _reserved_keywords = {
diff --git a/stone/backends/python_type_mapping.py b/stone/backends/python_type_mapping.py
index d28fae0..10b6358 100644
--- a/stone/backends/python_type_mapping.py
+++ b/stone/backends/python_type_mapping.py
@@ -60,7 +60,7 @@ def map_stone_type_to_python_type(ns, data_type, override_dict=None):
     elif is_float_type(data_type):
         return 'float'
     elif is_integer_type(data_type):
-        return 'long'
+        return 'int'
     elif is_void_type(data_type):
         return 'None'
     elif is_timestamp_type(data_type):

Generated .pyi files reference 'long', which is not Python 3 compatible
I can think of two ways to fix this:

1. The easy way: replace `'long'` with `'int'` [here](https://github.com/dropbox/stone/blob/master/stone/backends/python_type_mapping.py#L63)
2. Do something with the override_dict

A potential problem for (1) would be that it will not only change the generated .pyi files but also the generated .py files. I do think that even in Python 2 the distinction between int and long is rarely useful though, so perhaps this is acceptable.

The problem with (2) is that it's a lot more code, since the architecture for the override_dict doesn't really map cleanly to the way is_integer_type() is used. (In order to allow separate mappings for Int32, UIint32, Int64 and UInt64, we'd need 4 isinstance checks.)
diff --git a/test/test_python_type_stubs.py b/test/test_python_type_stubs.py
index 2e6e42e..ec85dea 100644
--- a/test/test_python_type_stubs.py
+++ b/test/test_python_type_stubs.py
@@ -276,15 +276,15 @@ class TestPythonTypeStubs(unittest.TestCase):
 
             class Struct2(object):
                 def __init__(self,
-                             f2: List[long] = ...,
+                             f2: List[int] = ...,
                              f3: datetime.datetime = ...,
-                             f4: Dict[Text, long] = ...) -> None: ...
+                             f4: Dict[Text, int] = ...) -> None: ...
 
                 @property
-                def f2(self) -> List[long]: ...
+                def f2(self) -> List[int]: ...
 
                 @f2.setter
-                def f2(self, val: List[long]) -> None: ...
+                def f2(self, val: List[int]) -> None: ...
 
                 @f2.deleter
                 def f2(self) -> None: ...
@@ -301,10 +301,10 @@ class TestPythonTypeStubs(unittest.TestCase):
 
 
                 @property
-                def f4(self) -> Dict[Text, long]: ...
+                def f4(self) -> Dict[Text, int]: ...
 
                 @f4.setter
-                def f4(self, val: Dict[Text, long]) -> None: ...
+                def f4(self, val: Dict[Text, int]) -> None: ...
 
                 @f4.deleter
                 def f4(self) -> None: ...
@@ -340,24 +340,24 @@ class TestPythonTypeStubs(unittest.TestCase):
 
             class NestedTypes(object):
                 def __init__(self,
-                             list_of_nullables: List[Optional[long]] = ...,
-                             nullable_list: Optional[List[long]] = ...) -> None: ...
+                             list_of_nullables: List[Optional[int]] = ...,
+                             nullable_list: Optional[List[int]] = ...) -> None: ...
 
                 @property
-                def list_of_nullables(self) -> List[Optional[long]]: ...
+                def list_of_nullables(self) -> List[Optional[int]]: ...
 
                 @list_of_nullables.setter
-                def list_of_nullables(self, val: List[Optional[long]]) -> None: ...
+                def list_of_nullables(self, val: List[Optional[int]]) -> None: ...
 
                 @list_of_nullables.deleter
                 def list_of_nullables(self) -> None: ...
 
 
                 @property
-                def nullable_list(self) -> Optional[List[long]]: ...
+                def nullable_list(self) -> Optional[List[int]]: ...
 
                 @nullable_list.setter
-                def nullable_list(self, val: Optional[List[long]]) -> None: ...
+                def nullable_list(self, val: Optional[List[int]]) -> None: ...
 
                 @nullable_list.deleter
                 def nullable_list(self) -> None: ...
diff --git a/test/test_python_types.py b/test/test_python_types.py
index 0f84f49..5c00cc2 100644
--- a/test/test_python_types.py
+++ b/test/test_python_types.py
@@ -165,7 +165,7 @@ class TestGeneratedPythonTypes(unittest.TestCase):
                 @property
                 def annotated_field(self):
                     """
-                    :rtype: long
+                    :rtype: int
                     """
                     if self._annotated_field_present:
                         return self._annotated_field_value
@@ -186,7 +186,7 @@ class TestGeneratedPythonTypes(unittest.TestCase):
                 @property
                 def unannotated_field(self):
                     """
-                    :rtype: long
+                    :rtype: int
                     """
                     if self._unannotated_field_present:
                         return self._unannotated_field_value
@@ -268,14 +268,14 @@ class TestGeneratedPythonTypes(unittest.TestCase):
                     """
                     test parameter
 
-                    :rtype: long
+                    :rtype: int
                     """
                     return self._test_param
 
                 @property
                 def test_default_param(self):
                     """
-                    :rtype: long
+                    :rtype: int
                     """
                     return self._test_default_param
 

pip install -e .
parse_log_pytest
ply>=3.4 six>=1.3.0 typing>=3.5.2
pytest
3.6
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
attrs==22.2.0
certifi==2021.5.30
importlib-metadata==4.8.3
iniconfig==1.1.1
packaging==21.3
pluggy==1.0.0
ply==3.11
py==1.11.0
pyparsing==3.1.4
pytest==7.0.1
six @ file:///tmp/build/80754af9/six_1644875935023/work
-e git+https://github.com/dropbox/stone.git@1a5cb6d9eab6383dccd12678c3b8723e2a9317d5#egg=stone
tomli==1.2.3
typing_extensions==4.1.1
zipp==3.6.0

name: stone
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - ca-certificates=2025.2.25=h06a4308_0
  - certifi=2021.5.30=py36h06a4308_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.3=he6710b0_2
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=1.1.1w=h7f8727e_0
  - pip=21.2.2=py36h06a4308_0
  - ply=3.11=py36_0
  - python=3.6.13=h12debd9_1
  - readline=8.2=h5eee18b_0
  - setuptools=58.0.4=py36h06a4308_0
  - six=1.16.0=pyhd3eb1b0_1
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - typing=3.10.0.0=py36h06a4308_0
  - wheel=0.37.1=pyhd3eb1b0_0
  - xz=5.6.4=h5eee18b_1
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - attrs==22.2.0
      - importlib-metadata==4.8.3
      - iniconfig==1.1.1
      - packaging==21.3
      - pluggy==1.0.0
      - py==1.11.0
      - pyparsing==3.1.4
      - pytest==7.0.1
      - tomli==1.2.3
      - typing-extensions==4.1.1
      - zipp==3.6.0
prefix: /opt/conda/envs/stone

test/test_python_type_stubs.py::TestPythonTypeStubs::test__generate_base_namespace_module__with_many_structs test/test_python_type_stubs.py::TestPythonTypeStubs::test__generate_base_namespace_module__with_nested_types test/test_python_types.py::TestGeneratedPythonTypes::test_annotation_type_class test/test_python_types.py::TestGeneratedPythonTypes::test_struct_with_custom_annotations
test/test_python_type_stubs.py::TestPythonTypeStubs::test__generate_base_namespace_module__with_alias test/test_python_type_stubs.py::TestPythonTypeStubs::test__generate_base_namespace_module_with_empty_union test/test_python_type_stubs.py::TestPythonTypeStubs::test__generate_base_namespace_module_with_union__generates_stuff test/test_python_type_stubs.py::TestPythonTypeStubs::test__generate_routes test/test_python_type_stubs.py::TestPythonTypeStubs::test__generate_routes_name_conflict test/test_python_types.py::TestGeneratedPythonTypes::test_route_with_version_number test/test_python_types.py::TestGeneratedPythonTypes::test_route_with_version_number_name_conflict
stone/backends/python_type_mapping.py stone/backends/python_helpers.py
stone/backends/python_type_mapping.py stone/backends/python_helpers.py