There's some sort of odd _Union bug with the cattrs version in the requirements.
I set up a new virtualenv, did pip3 install -r requirements.txt and CDK could not synth due to an odd error.
I fixed the dependency by essentially saying >= to cattrs, attrs, and jsii. This probably isn't awesome, but what fixed it for me:
boto3>=1.9.197 # for python scripts
attrs>=20.1.0 # via cattrs, jsii
aws-cdk.aws-cloudwatch==1.34.1 # via aws-cdk.aws-ec2, aws-cdk.aws-logs
aws-cdk.aws-ec2==1.34.1 # via -r requirements.in
aws-cdk.aws-events==1.34.1 # via aws-cdk.aws-s3
aws-cdk.aws-iam==1.34.1 # via -r requirements.in, aws-cdk.aws-cloudwatch, aws-cdk.aws-ec2, aws-cdk.aws-events, aws-cdk.aws-kms, aws-cdk.aws-logs, aws-cdk.aws-s3, aws-cdk.aws-ssm
aws-cdk.aws-kms==1.34.1 # via aws-cdk.aws-s3, aws-cdk.aws-ssm
aws-cdk.aws-logs==1.34.1 # via aws-cdk.aws-ec2
aws-cdk.aws-s3==1.34.1 # via aws-cdk.aws-ec2
aws-cdk.aws-ssm==1.34.1 # via aws-cdk.aws-ec2
aws-cdk.cloud-assembly-schema==1.34.1 # via aws-cdk.core, aws-cdk.cx-api
aws-cdk.core==1.34.1 # via -r requirements.in, aws-cdk.aws-cloudwatch, aws-cdk.aws-ec2, aws-cdk.aws-events, aws-cdk.aws-iam, aws-cdk.aws-kms, aws-cdk.aws-logs, aws-cdk.aws-s3, aws-cdk.aws-ssm
aws-cdk.cx-api==1.34.1 # via aws-cdk.aws-ec2, aws-cdk.aws-ssm, aws-cdk.core
aws-cdk.region-info==1.34.1 # via aws-cdk.aws-ec2, aws-cdk.aws-iam
cattrs>=1.1.1 # via jsii
constructs==3.0.2 # via aws-cdk.aws-cloudwatch, aws-cdk.aws-ec2, aws-cdk.aws-events, aws-cdk.aws-iam, aws-cdk.aws-kms, aws-cdk.aws-logs, aws-cdk.aws-s3, aws-cdk.aws-ssm, aws-cdk.core
jsii>=1.4.0 # via aws-cdk.aws-cloudwatch, aws-cdk.aws-ec2, aws-cdk.aws-events, aws-cdk.aws-iam, aws-cdk.aws-kms, aws-cdk.aws-logs, aws-cdk.aws-s3, aws-cdk.aws-ssm, aws-cdk.cloud-assembly-schema, aws-cdk.core, aws-cdk.cx-api, aws-cdk.region-info, constructs
publication==0.0.3 # via aws-cdk.aws-cloudwatch, aws-cdk.aws-ec2, aws-cdk.aws-events, aws-cdk.aws-iam, aws-cdk.aws-kms, aws-cdk.aws-logs, aws-cdk.aws-s3, aws-cdk.aws-ssm, aws-cdk.cloud-assembly-schema, aws-cdk.core, aws-cdk.cx-api, aws-cdk.region-info, constructs
python-dateutil==2.8.1 # via jsii
six==1.14.0 # via python-dateutil
typing-extensions==3.7.4.2 # via jsii