Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
32 views

Data Ingestion with Python Cookbook: A practical guide to ingesting, monitoring, and identifying errors in the data ingestion process 1st Edition Esppenchutz instant download

The document is a promotional overview of the 'Data Ingestion with Python Cookbook' by Gláucia Esppenchutz, which serves as a practical guide for data ingestion processes. It includes various resources and links to related ebooks on topics such as data cleaning, engineering, and analysis with Python. The book emphasizes the importance of monitoring and identifying errors during data ingestion.

Uploaded by

hmazbinza
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
32 views

Data Ingestion with Python Cookbook: A practical guide to ingesting, monitoring, and identifying errors in the data ingestion process 1st Edition Esppenchutz instant download

The document is a promotional overview of the 'Data Ingestion with Python Cookbook' by Gláucia Esppenchutz, which serves as a practical guide for data ingestion processes. It includes various resources and links to related ebooks on topics such as data cleaning, engineering, and analysis with Python. The book emphasizes the importance of monitoring and identifying errors during data ingestion.

Uploaded by

hmazbinza
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 52

Data Ingestion with Python Cookbook: A practical

guide to ingesting, monitoring, and identifying


errors in the data ingestion process 1st Edition
Esppenchutz pdf download
https://ebookmass.com/product/data-ingestion-with-python-
cookbook-a-practical-guide-to-ingesting-monitoring-and-
identifying-errors-in-the-data-ingestion-process-1st-edition-
esppenchutz/

Explore and download more ebooks at ebookmass.com


We have selected some products that you may be interested in
Click the link to download now or visit ebookmass.com
for more options!.

Python Data Cleaning Cookbook - Second Edition Michael


Walker

https://ebookmass.com/product/python-data-cleaning-cookbook-second-
edition-michael-walker/

Data Engineering with dbt: A practical guide to building a


cloud-based, pragmatic, and dependable data platform with
SQL Zagni
https://ebookmass.com/product/data-engineering-with-dbt-a-practical-
guide-to-building-a-cloud-based-pragmatic-and-dependable-data-
platform-with-sql-zagni/

Exploratory Data Analysis with Python Cookbook: Over 50


recipes to analyze, visualize, and extract insights from
structured and unstructured data Oluleye
https://ebookmass.com/product/exploratory-data-analysis-with-python-
cookbook-over-50-recipes-to-analyze-visualize-and-extract-insights-
from-structured-and-unstructured-data-oluleye/

Data-Driven SEO with Python: Solve SEO Challenges with


Data Science Using Python 1st Edition Andreas Voniatis

https://ebookmass.com/product/data-driven-seo-with-python-solve-seo-
challenges-with-data-science-using-python-1st-edition-andreas-
voniatis/
Statistical Process Monitoring Using Advanced Data-Driven
and Deep Learning Approaches: Theory and Practical
Applications 1st Edition Fouzi Harrou
https://ebookmass.com/product/statistical-process-monitoring-using-
advanced-data-driven-and-deep-learning-approaches-theory-and-
practical-applications-1st-edition-fouzi-harrou/

Beginner's Guide to Streamlit with Python: Build Web-Based


Data and Machine Learning Applications 1st Edition Sujay
Raghavendra
https://ebookmass.com/product/beginners-guide-to-streamlit-with-
python-build-web-based-data-and-machine-learning-applications-1st-
edition-sujay-raghavendra/

Data Structure and Algorithms With Python: The Ultimate


Guide Towards Coding John Thomas

https://ebookmass.com/product/data-structure-and-algorithms-with-
python-the-ultimate-guide-towards-coding-john-thomas/

(eBook PDF) Intro to Python for Computer Science and Data


Science: Learning to Program with AI, Big Data and The
Cloud
https://ebookmass.com/product/ebook-pdf-intro-to-python-for-computer-
science-and-data-science-learning-to-program-with-ai-big-data-and-the-
cloud/

Nonclinical Study Contracting and Monitoring: A Practical


Guide 1st Edition

https://ebookmass.com/product/nonclinical-study-contracting-and-
monitoring-a-practical-guide-1st-edition/
Data Ingestion with Python
Cookbook

A practical guide to ingesting, monitoring, and identifying


errors in the data ingestion process

Gláucia Esppenchutz

BIRMINGHAM—MUMBAI
Data Ingestion with Python Cookbook
Copyright © 2023 Packt Publishing
All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted
in any form or by any means, without the prior written permission of the publisher, except in the case
of brief quotations embedded in critical articles or reviews.
Every effort has been made in the preparation of this book to ensure the accuracy of the information
presented. However, the information contained in this book is sold without warranty, either express
or implied. Neither the author, nor Packt Publishing or its dealers and distributors, will be held liable
for any damages caused or alleged to have been caused directly or indirectly by this book.
Packt Publishing has endeavored to provide trademark information about all of the companies and
products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot
guarantee the accuracy of this information.

Group Product Manager: Reshma Raman


Publishing Product Manager: Arindam Majumdar
Senior Editor: Tiksha Lad
Technical Editor: Devanshi Ayare
Copy Editor: Safis Editing
Project Coordinator: Farheen Fathima
Proofreader: Safis Editing
Indexer: Sejal Dsilva
Production Designer: Jyoti Chauhan
Marketing Coordinator: Nivedita Singh

First published: May 2023

Production reference: 1300523

Published by Packt Publishing Ltd.


Livery Place
35 Livery Street
Birmingham
B3 2PB, UK.

ISBN 978-1-83763-260-2

www.packtpub.com
This book represents a lot and wouldn’t be possible without my loving husband, Lincoln, and his
support and understanding during this challenging endeavor. I want to thank all my friends that
didn’t let me give up and always boosted my spirits, along with my grandmother, who always believed,
helped, and said I would do big things one day. Finally, I want to thank my beloved and four-pawed
best friend, who is at peace, Minduim, for “helping” me to write this book.

– Gláucia Esppenchutz
Contributors

About the author


Gláucia Esppenchutz is a data engineer with expertise in managing data pipelines and vast amounts
of data using cloud and on-premises technologies. She worked in companies such as Globo.com,
BMW Group, and Cloudera. Currently, she works at AiFi, specializing in the field of data operations
for autonomous systems.
She comes from the biomedical field and shifted her career ten years ago to chase the dream of
working closely with technology and data. She is in constant contact with the open source community,
mentoring people and helping to manage projects, and has collaborated with the Apache, PyLadies
group, FreeCodeCamp, Udacity, and MentorColor communities.

I want to thank my patient and beloved husband and my friends. Thanks also to my mentors in the
Python open source community and the DataBootCamp founders, who guided me at the beginning
of my journey.
Thanks to the Packt team, who helped me through some hard times; you were terrific!
About the reviewers
Bitthal Khaitan is currently working as a big data and cloud engineer with CVS Health, a Fortune
4 organization. He has a demonstrated history of working in the cloud, data and analytics industry
for 12+ years. His primary certified skills are Google Cloud Platform (GCP), the big data ecosystem
(Hadoop, Spark, etc.), and data warehousing on Teradata. He has worked in all phases of the SDLC
of DW/BI and big data projects with strong expertise in the USA healthcare, insurance and retail
domains. He actively helps new graduates with mentoring, resume reviews, and job hunting tips in
the data engineering domain. Over 20,000 people follow Bitthal on LinkedIn. He is currently based
out of Dallas, Texas, USA.
Jagjeet Makhija is a highly accomplished technology leader with over 20 years of experience. They are
skilled not only in various domains including AI, data warehouse architecture, and business analytics,
but also have a strong passion for staying ahead of technology trends such as AI and ChatGPT.
Jagjeet is recognized for their significant contributions to the industry, particularly in complex proof
of concepts and integrating Microsoft products with ChatGPT. They are also an avid book reviewer
and have actively shared their extensive knowledge and expertise through presentations, blog articles,
and online forums.
Krishnan Raghavan is an IT professional with over 20 years of experience in the area of software
development and delivery excellence across multiple domains and technology, ranging from C++ to
Java, Python, data warehousing, and big data tools and technologies. Krishnan tries to give back to the
community by being part of GDG – Pune Volunteer Group, helping the team in organizing events.
When not working, Krishnan likes to spend time with his wife and daughter, as well as reading fiction,
non-fiction, and technical books. Currently, he is unsuccessfully trying to learn how to play the guitar.
You can connect with Krishnan at mail to: k r i s h n a n @ g m a i l . c o m or via
LinkedIn: www.linkedin.com/in/krishnan-raghavan

I would like to thank my wife, Anita, and daughter, Ananya, for giving me the time and space to
review this book.
Table of Contents

Prefacexv

Part 1: Fundamentals of Data Ingestion


1
Introduction to Data Ingestion 3
Technical requirements 4 How to do it… 17
Setting up Python and its environment 4 How it works… 21
See also 22
Getting ready 4
How to do it… 5 Creating schemas 22
How it works… 7 Getting ready 22
There’s more… 7 How to do it… 22
See also 7 How it works… 24
Installing PySpark 8 See also 25

Getting ready 8 Applying data governance in ingestion 25


How to do it… 10 Getting ready 25
How it works… 12 How to do it… 26
There’s more… 12 How it works… 28
See also 12 See also 28
Configuring Docker for MongoDB 13 Implementing data replication 29
Getting ready 13 Getting ready 29
How to do it… 13 How to do it… 29
How it works… 14 How it works… 29
There’s more… 16 There’s more… 30
See also 16
Further reading 30
Configuring Docker for Airflow 16
Getting ready 17
viii Table of Contents

2
Principals of Data Access – Accessing Your Data 31
Technical requirements 31 How to do it… 47
Implementing governance in a data How it works… 48
access workflow 32 There’s more… 49
Getting ready 32 See also 52
How to do it… 33 Managing encrypted files 52
How it works… 34 Getting ready 52
See also 34 How to do it… 53
Accessing databases and data How it works… 54
warehouses34 There’s more… 55
Getting ready 35 See also 56
How to do it… 35 Accessing data from AWS using S3 56
How it works… 37 Getting ready 56
There’s more… 38 How to do it… 59
See also 39 How it works… 62
Accessing SSH File Transfer Protocol There’s more… 63
(SFTP) files 39 See also 63
Getting ready 39 Accessing data from GCP using
How to do it… 41 Cloud Storage 64
How it works… 43 Getting ready 64
There’s more… 43 How to do it… 66
See also 44 How it works… 68
Retrieving data using API There’s more… 70
authentication44 Further reading 70
Getting ready 45

3
Data Discovery – Understanding Our Data before Ingesting It 71
Technical requirements 71 How to do it… 73
Documenting the data discovery How it works… 77
process71 Configuring OpenMetadata 77
Getting ready 72 Getting ready 77
Table of Contents ix

How to do it… 79 Getting ready 86


How it works… 84 How to do it… 88
There’s more… 86 How it works… 92
See also 86
Further reading 93
Connecting OpenMetadata Other tools 94
to our database 86

4
Reading CSV and JSON Files and Solving Problems 95
Technical requirements 95 How it works… 105
Reading a CSV file 96 There’s more… 106
See also 107
Getting ready 96
How to do it… 96 Using PySpark to read CSV files 108
How it works… 98 Getting ready 108
There’s more… 98 How to do it… 108
See also 99 How it works… 109
Reading a JSON file 99 There’s more… 110
See also 114
Getting ready 100
How to do it… 100 Using PySpark to read JSON files 114
How it works… 100 Getting ready 114
There’s more… 101 How to do it… 115
See also 103 How it works… 116
Creating a SparkSession for PySpark 103 There’s more… 117
See also 117
Getting ready 103
How to do it… 104 Further reading 117

5
Ingesting Data from Structured and Unstructured Databases 119
Technical requirements 119 There’s more… 127
Configuring a JDBC connection 120 See also 129

Getting ready 120 Ingesting data from a JDBC database


How to do it… 124 using SQL 129
How it works… 126 Getting ready 129
Visit https://ebookmass.com today to explore
a vast collection of ebooks across various
genres, available in popular formats like
PDF, EPUB, and MOBI, fully compatible with
all devices. Enjoy a seamless reading
experience and effortlessly download high-
quality materials in just a few simple steps.
Plus, don’t miss out on exciting offers that
let you access a wealth of knowledge at the
best prices!
x Table of Contents

How to do it… 130 Getting ready 146


How it works… 132 How to do it… 146
There’s more… 133 How it works… 148
See also 133 There’s more… 149
See also 150
Connecting to a NoSQL
database (MongoDB) 134 Ingesting data from MongoDB
Getting ready 134 using PySpark 150
How to do it… 136 Getting ready 150
How it works… 142 How to do it… 151
There’s more… 144 How it works… 153
See also 145 There’s more… 155
See also 156
Creating our NoSQL table in
MongoDB145 Further reading 157

6
Using PySpark with Defined and Non-Defined Schemas 159
Technical requirements 159 How to do it… 169
Applying schemas to data ingestion 160 How it works… 170

Getting ready 160 Ingesting unstructured data with a


How to do it… 162 well-defined schema and format 172
How it works… 163 Getting ready 172
There’s more… 165 How to do it… 172
See also 165 How it works… 174
Importing structured data using a There’s more… 176
well-defined schema 165 See also 176

Getting ready 165 Inserting formatted SparkSession


How to do it… 165 logs to facilitate your work 176
How it works… 167 Getting ready 176
There’s more… 168 How to do it… 176
See also 169 How it works… 178
Importing unstructured data without There’s more… 179
a schema 169 See also 179

Getting ready… 169 Further reading 179


Table of Contents xi

7
Ingesting Analytical Data 181
Technical requirements 181 How it works… 197
Ingesting Parquet files 182 There’s more… 198
See also 200
Getting ready 182
How to do it… 183 Ingesting partitioned data 200
How it works… 184 Getting ready 200
There’s more… 185 How to do it… 201
See also 185 How it works… 201
Ingesting Avro files 185 There’s more… 203
See also 204
Getting ready 186
How to do it… 186 Applying reverse ETL 204
How it works… 188 Getting ready 204
There’s more… 190 How to do it… 205
See also 190 How it works… 206
Applying schemas to analytical data 191 There’s more… 207
See also 207
Getting ready 191
How to do it… 191 Selecting analytical data for reverse
How it works… 194 ETL207
There’s more… 194 Getting ready 207
See also 195 How to do it… 208
Filtering data and handling common How it works… 209
issues195 See also 210

Getting ready 195 Further reading 210


How to do it… 196

Part 2: Structuring the Ingestion Pipeline


8
Designing Monitored Data Workflows 213
Technical requirements 213 Getting ready 214
Inserting logs 214 How to do it… 214
How it works… 216
xii Table of Contents

See also 217 How it works… 229


There’s more… 229
Using log-level types 217
See also 230
Getting ready 217
How to do it… 217 Logging based on data 231
How it works… 219 Getting ready 231
There’s more… 220 How to do it… 231
See also 221 How it works… 232
There’s more… 233
Creating standardized logs 221
See also 233
Getting ready 222
How to do it… 222 Retrieving SparkSession metrics 234
How it works… 224 Getting ready 234
There’s more… 227 How to do it… 234
See also 227 How it works… 237
There’s more… 241
Monitoring our data ingest file size 227
See also 242
Getting ready 228
How to do it… 228 Further reading 242

9
Putting Everything Together with Airflow 243
Technical requirements 244 How to do it… 257
Installing Airflow 244 How it works… 260
There's more… 262
Configuring Airflow 244 See also 262
Getting ready 244
How to do it… 245 Configuring sensors 262
How it works… 247 Getting ready 262
See also 248 How to do it… 263
How it works… 264
Creating DAGs 248 See also 265
Getting ready 248
How to do it… 249 Creating connectors in Airflow 265
How it works… 253 Getting ready 266
There's more… 254 How to do it… 266
See also 255 How it works… 269
There's more… 270
Creating custom operators 255 See also 270
Getting ready 255
Table of Contents xiii

Creating parallel ingest tasks 270 Getting ready 274


Getting ready 270 How to do it… 275
How to do it… 271 How it works… 277
How it works… 272 There's more… 278
There's more… 273 See also 279
See also 274
Further reading 279
Defining ingest-dependent DAGs 274

10
Logging and Monitoring Your Data Ingest in Airflow 281
Technical requirements 281 Designing advanced monitoring 304
Installing and running Airflow 282 Getting ready 304
How to do it… 306
Creating basic logs in Airflow 283
How it works… 308
Getting ready 284
There’s more… 309
How to do it… 284
See also 309
How it works… 287
See also 289 Using notification operators 309
Getting ready 310
Storing log files in a remote location 289
How to do it… 312
Getting ready 289
How it works… 315
How to do it… 290
There’s more… 318
How it works… 298
See also 299 Using SQL operators for data quality 318
Getting ready 318
Configuring logs in airflow.cfg 299
How to do it… 320
Getting ready 299
How it works… 321
How to do it… 299
There’s more… 323
How it works… 301
See also 323
There’s more… 303
See also 304 Further reading 324

11
Automating Your Data Ingestion Pipelines 325
Technical requirements 325 Scheduling daily ingestions 326
Installing and running Airflow 326 Getting ready 327
xiv Table of Contents

How to do it… 327 There's more… 340


How it works… 330
Setting up the schedule_interval
There's more… 330
parameter340
See also 331
Getting ready 340
Scheduling historical data ingestion 331 How to do it… 341
Getting ready 331 How it works… 342
How to do it… 332 See also 342
How it works… 335
Solving scheduling errors 343
There's more… 336
Getting ready 343
Scheduling data replication 337 How to do it… 343
Getting ready 337 How it works… 346
How to do it… 338 There’s more… 347
How it works… 339
Further reading 347

12
Using Data Observability for Debugging, Error Handling,
and Preventing Downtime 349
Technical requirements 349 Getting ready 358
Docker images 350 How to do it… 358
How it works… 361
Setting up StatsD for monitoring 351 There’s more… 363
Getting ready 351
How to do it… 351 Creating an observability dashboard 363
How it works… 353 Getting ready 363
See also 354 How to do it… 363
How it works… 369
Setting up Prometheus for storing There’s more… 370
metrics354
Getting ready 354 Setting custom alerts or notifications 370
How to do it… 354 Getting ready 371
How it works… 356 How to do it… 371
There’s more… 357 How it works… 377

Setting up Grafana for monitoring 358 Further reading 378

Index379

Other Books You May Enjoy 388


Preface
Welcome to Data Ingestion with Python Cookbook. I hope you are excited as me to enter the world
of data engineering.
Data Ingestion with Python Cookbook is a practical guide that will empower you to design and implement
efficient data ingestion pipelines. With real-world examples and renowned open-source tools, this
book addresses your queries and hurdles head-on.
Beginning with designing pipelines, you’ll explore working with and without data schemas, constructing
monitored workflows using Airflow, and embracing data observability principles while adhering
to best practices. Tackling the challenges of reading diverse data sources and formats, you’ll gain a
comprehensive understanding of all these.
Our journey continues with essential insights into error logging, identification, resolution, data
orchestration, and effective monitoring. You’ll discover optimal approaches for storing logs, ensuring
easy access and references for them in the future.
By the end of this book, you’ll possess a fully automated setup to initiate data ingestion and pipeline
monitoring. This streamlined process will seamlessly integrate into the subsequent stages of the Extract,
Transform, and Load (ETL) process, propelling your data integration capabilities to new heights. Get
ready to embark on an enlightening and transformative data ingestion journey.

Who this book is for


This comprehensive book is specifically designed for Data Engineers, Data Integration Specialists, and
passionate data enthusiasts seeking a deeper understanding of data ingestion processes, data flows,
and the typical challenges encountered along the way. It provides valuable insights, best practices, and
practical knowledge to enhance your skills and proficiency in handling data ingestion tasks effectively.
Whether you are a beginner in the data world or an experienced developer, this book will suit you.
It is recommended to know the Python programming fundamentals and have basic knowledge of
Docker to read and run this book’s code.

What this book covers


Chapter 1, Introduction to Data Ingestion, introduces you to data ingestion best practices and the
challenges of working with diverse data sources. It explains the importance of the tools covered in
the book, presents them, and provides installation instructions.
xvi Preface

Chapter 2, Data Access Principals – Accessing your Data, explores data access concepts related to data
governance, covering workflows and management of familiar sources such as SFTP servers, APIs,
and cloud providers. It also provides examples of creating data access policies in databases, data
warehouses, and the cloud.
Chapter 3, Data Discovery – Understanding Our Data Before Ingesting It, teaches you the significance of
carrying out the data discovery process before data ingestion. It covers manual discovery, documentation,
and using an open-source tool, OpenMetadata, for local configuration.
Chapter 4, Reading CSV and JSON Files and Solving Problems, introduces you to ingesting CSV and JSON
files using Python and PySpark. It demonstrates handling varying data volumes and infrastructures
while addressing common challenges and providing solutions.
Chapter 5, Ingesting Data from Structured and Unstructured Databases, covers fundamental concepts
of relational and non-relational databases, including everyday use cases. You will learn how to read
and handle data from these models, understand vital considerations, and troubleshoot potential errors.
Chapter 6, Using PySpark with Defined and Non-Defined Schemas, delves deeper into common PySpark
use cases, focusing on handling defined and non-defined schemas. It also explores reading and
understanding complex logs from Spark (PySpark core) and formatting techniques for easier debugging.
Chapter 7, Ingesting Analytical Data, introduces you to analytical data and common formats for reading
and writing. It explores reading partitioned data for improved performance and discusses Reverse
ETL theory with real-life application workflows and diagrams.
Chapter 8, Designing Monitored Data Workflows, covers logging best practices for data ingestion,
facilitating error identification, and debugging. Techniques such as monitoring file size, row count,
and object count enable improved monitoring of dashboards, alerts, and insights.
Chapter 9, Putting Everything Together with Airflow, consolidates the previously presented information
and guides you in building a real-life data ingestion application using Airflow. It covers essential
components, configuration, and issue resolution in the process.
Chapter 10, Logging and Monitoring Your Data Ingest in Airflow, explores advanced logging and
monitoring in data ingestion with Airflow. It covers creating custom operators, setting up notifications,
and monitoring for data anomalies. Configuration of notifications for tools such as Slack is also covered
to stay updated on the data ingestion process.
Chapter 11, Automating Your Data Ingestion Pipelines, focuses on automating data ingests using
previously learned best practices, enabling reader autonomy. It addresses common challenges with
schedulers or orchestration tools and provides solutions to avoid problems in production clusters.
Chapter 12, Using Data Observability for Debugging, Error Handling, and Preventing Downtime,
explores data observability concepts, popular monitoring tools such as Grafana, and best practices
for log storage and data lineage. It also covers creating visualization graphs to monitor data source
issues using Airflow configuration and data ingestion scripts.
Preface xvii

To get the most out of this book


To execute the code in this book, you must have at least a basic knowledge of Python. We will use
Python as the core language to execute the code. The code examples have been tested using Python
3.8. However, it is expected to still work with future language versions.
Along with Python, this book uses Docker to emulate data systems and applications in our local
machine, such as PostgreSQL, MongoDB, and Airflow. Therefore, a basic knowledge of Docker is
recommended to edit container image files and run and stop containers.
Please, remember that some command-line commands may need adjustments depending on your local
settings or operating system. The commands in the code examples are based on the Linux command-
line syntax and might need some adaptations to run on Windows PowerShell.

Software/Hardware covered in the book OS Requirements

Python 3.8 or higher Windows, Mac OS X, and Linux (any)


Docker Engine 24.0 / Docker Desktop 4.19 Windows, Mac OS X, and Linux (any)

For almost all recipes in this book, you can use a Jupyter Notebook to execute the code. Even though it
is not mandatory to install it, this tool can help you to test the code and try new things on the code due
to the friendly interface.
If you are using the digital version of this book, we advise you to type the code yourself or access
the code via the GitHub repository (link available in the next section). Doing so will help you
avoid any potential errors related to the copying and pasting of code.

Download the example code files


You can download the example code files for this book from GitHub at https://github.com/
PacktPublishing/Data-Ingestion-with-Python-Cookbook. In case there’s an update
to the code, it will be updated on the existing GitHub repository.
We also have other code bundles from our rich catalog of books and videos available at https://
github.com/PacktPublishing/. Check them out!

Download the color images


We also provide a PDF file that has color images of the screenshots/diagrams used in this book. You
can download it here: https://packt.link/xwl0U
xviii Preface

Conventions used
There are a number of text conventions used throughout this book.
Code in text: Indicates code words in text, database table names, folder names, filenames, file
extensions, pathnames, dummy URLs, user input, and Twitter handles. Here is an example: “Then
we proceeded with the with open statement.”
A block of code is set as follows:

def gets_csv_first_line (csv_file):


    logging.info(f"Starting function to read first line")
    try:
        with open(csv_file, 'r') as file:
            logging.info(f"Reading file")

Any command-line input or output is written as follows:

$ python3 –-version
Python 3.8.10

Bold: Indicates a new term, an important word, or words that you see onscreen. For example, words
in menus or dialog boxes appear in the text like this. Here is an example: “Then, when we selected
showString at NativeMethodAccessorImpl.java:0, which redirected us to the
Stages page.”

Tips or important notes


Appear like this.

Sections
In this book, you will find several headings that appear frequently (Getting ready, How to do it..., How
it works..., There’s more..., and See also).
To give clear instructions on how to complete a recipe, use these sections as follows:

Getting ready
This section tells you what to expect in the recipe and describes how to set up any software or any
preliminary settings required for the recipe.

How to do it…
This section contains the steps required to follow the recipe.
Preface xix

How it works…
This section usually consists of a detailed explanation of what happened in the previous section.

There’s more…
This section consists of additional information about the recipe in order to make you more knowledgeable
about the recipe.

See also
This section provides helpful links to other useful information for the recipe.

Get in touch
Feedback from our readers is always welcome.
General feedback: If you have questions about any aspect of this book, mention the book title in the
subject of your message and email us at customercare@packtpub.com.
Errata: Although we have taken every care to ensure the accuracy of our content, mistakes do happen.
If you have found a mistake in this book, we would be grateful if you would report this to us. Please
visit www.packtpub.com/support/errata, selecting your book, clicking on the Errata
Submission Form link, and entering the details.
Piracy: If you come across any illegal copies of our works in any form on the Internet, we would
be grateful if you would provide us with the location address or website name. Please contact us at
copyright@packt.com with a link to the material.
If you are interested in becoming an author: If there is a topic that you have expertise in and you
are interested in either writing or contributing to a book, please visit authors.packtpub.com.
Visit https://ebookmass.com today to explore
a vast collection of ebooks across various
genres, available in popular formats like
PDF, EPUB, and MOBI, fully compatible with
all devices. Enjoy a seamless reading
experience and effortlessly download high-
quality materials in just a few simple steps.
Plus, don’t miss out on exciting offers that
let you access a wealth of knowledge at the
best prices!
Exploring the Variety of Random
Documents with Different Content
the actor and actress. The situation, as Professor Gail said
afterwards, was highly dramatic.

"You must answer my questions frankly," said Vernon addressing the


couple; "if you do not, the police may interfere."

"The police?" shrieked Mrs. Gail, turning as white as chalk.

The Professor silenced her with a gesture and spoke to Vernon with
great dignity. "Young man," he said, striving to keep his voice from
trembling, "I pay my rates and taxes, my bills to my tradesmen, and
my rent for our home. Under these circumstances I cannot see why
you should talk of the police."

"I speak of them in connection with what has taken place."

"And you may well do so, young man. To fire a pistol in a private
house----"

"That was an accident," Vernon hastened to explain. "My revolver


went off when Mr. Hest assaulted me."

"Why should Mr. Hest assault you?" demanded Mrs. Gail, much
astonished.

"That's a long story. Tell me," Vernon turned towards the Professor
while Towton held his peace and nursed his hat, "what do you know
of Maunders?"

"Know of him?" said the amazed Gail, looking thoroughly puzzled. "I
know no more than that he is a friend of Mr. Hest's who called last
night and who was requested, by Mr. Hest and not by me, to stay
the night. I have never set eyes on him before."

"Did Miss Hest ever mention him?"


"Yes, she did," broke in Mrs. Gail, who was listening intently. "She
told me that he was a friend of hers in love with Miss Dimsdale, and
mentioned that he was the only man she had ever seen handsome
enough to play Romeo as Romeo should be played."

Professor Gail nodded his head graciously. "I agree with Miss Hest
there," he said gravely; "Mr. Maunders is indeed handsome. But she
never told us anything about him, Mr. Vernon, save what my wife
has related."

"And Mr. Hest? What do you know of him?"

"Nothing more than that he is the brother of my talented pupil. He


came with the message from his sister, who is at her ancestral halls
in Yorkshire, to the effect that she would return in a month, or
perchance earlier, to fulfil certain engagements which I have
procured her. I invited him to stay here during his stay in town."

"Why did you?" asked the Colonel, speaking for the first time. Gail
looked embarrassed, but Mrs. Gail spoke for him. "Mr. Hest, we
know, is very rich," she said frankly, "and both my husband and
myself wish to have a theatre of our own. We thought that if we
showed him some hospitality he might finance us. I must say," she
added, looking puzzled, "that I wondered that such a rich man was
content to accept our humble lodgings instead of going to a swell
hotel. But he seems to be easily pleased."

"It was not that, Hettie," said the Professor quickly. "Mr. Hest simply
remained here so that he could persuade me to induce my talented
pupil to give up reciting, as he dreaded lest she should go on the
stage. And she ought to be an actress, in my humble opinion, for her
capabilities are of a very high order. As Lady Macbeth, or in any of
Sardou's characters, such as La Tosca, Fedora, and the rest, she
would produce a sensation."

The speech of both man and wife seemed frank enough, and they
appeared to be a couple of simple people devoted to their profession
and quite ignorant of evil. Vernon glanced at Towton and saw from
the expression of the Colonel's face that he thoroughly believed
them. Still, so as to be quite sure of his ground, he asked another
question: "Miss Hest as a reciter or an actress may be all that can be
desired, but do you and Mrs. Gail like her personally; do you think
she is what we call--well--er--straight?"

"Yes," cried the woman forcibly; "Miss Hest is one in a thousand.


She is a kind-hearted lady who sympathises with those who
struggle."

"Hettie is quite right," said the Professor with dignity. "Many a time
has Miss Hest assisted us when tradespeople have worried. I am
sure that she would have persuaded her brother to enable us to
enter into management in the long run, as she has every confidence
in my capabilities."

"And in mine," said Mrs. Gail jealously. "She said that my Emilia in
'Othello' was the best performance she had ever seen. But now,
gentlemen," the actress rose to give effect to her words, "may I
inquire why you ask these questions, and why you come here to fire
pistols in a peaceful home?"

At the beginning it had been in Vernon's mind to tell the whole story
right out and to tax the couple with complicity. But they really
seemed to be entirely ignorant of Hest's true character, and evidently
had only lately met Maunders. He therefore did not think it wise to
reveal what he and the Colonel knew lest the Gails should gossip
about the matter. And until he had consulted Drench the young man
did not desire that this last unusual affair should become public. He
therefore shot a warning glance at the Colonel and answered
cautiously:

"It is only a private matter, Mrs. Gail, which is not worth explaining.
The pistol-shot was an accident."
"But you said that Mr. Maunders and Mr. Hest were villains," she
persisted. "Ah, I spoke somewhat harshly, being a trifle excited.
They have treated me and my friend here very badly and we came
for redress. How their consciences smote them you can judge from
the fact of their flight. You will possibly never see them again. But if
they do chance to return you must wire to me at once to the
Athenian Club, Pall Mall."

"I don't like these hints and suggestions of evil, sir," said Gail,
restlessly, "and certainly I should never think of telegraphing to you
unless Mr. Maunders and Mr. Hest give me leave. And why, sir,
should they not return?"

"Don't seek to know any more, Mr. Gail, but do as you are told," said
Vernon in a peremptory tone, "and also it will be wise if you and
your wife hold your tongues over what has happened and stop the
servant from talking."

"Suppose we don't?" demanded Mrs. Gail aggressively.

"In that case you will get into trouble."

"How dare you--how dare----"

"See here!" Colonel Towton rose angrily. "We have reason to believe
that these men are connected with The Spider."

Mrs. Gail shrieked and the Professor turned pale. Both knew that
terrible name which was so freely mentioned in the papers. "Do you
mean to say----"

"We say nothing," said Vernon sharply, "and my friend here has
perhaps said too much. But it is as well that you should know the
necessity of keeping silent tongues in your heads."

"We, knowing nothing of these matters, cannot be expected to----"


"I am quite aware that you are innocent of complicity," interrupted
Towton, "but you both must promise to be silent until you have leave
to speak."

"And if not?"

"Already I have told you that the police will interfere," observed
Vernon coldly. "This business is concerned with The Spider, so, for
your own sakes, hold your confounded tongues."

The Gails, however, were not so easily commanded. They wished to


know how Hest and Maunders were connected with The Spider, and
if they were in any way accused of being, as they termed it, "in the
know." But the arguments and commands of Towton, together with
those of Vernon, gradually induced the worthy couple to listen to
reason. In fact, at the end of half an hour both were thoroughly
terrified into thinking that their reputation might be ruined were it
known that men connected with The Spider had been under their
roof. Neither Gail nor his wife were averse to being mentioned in the
papers or to securing an advertisement so as to add to their
theatrical fame, but the publicity likely to be procured from the late
episode was not the sort they desired. They therefore finally agreed
to keep silence about the strange interview and the flight of their
guests, and also declared that they would make Maria hold her
tongue. Nevertheless, their curiosity remained unabated, and Vernon
had to promise them that it would some day be satisfied.

"You shall know all when the time comes," he said when taking
leave, "but keep silence until the appointed hour lest you get into
trouble."

This speech, being somewhat stagey, sounded pleasantly in the ears


of the couple, and Towton left the house with his friend, quite
satisfied that Professor Gail and his wife and their servant would say
nothing of what had taken place. "And now," said the Colonel, "let
us grope our way to the station. After we reach town we can see
Drench."

Vernon agreed, and by following the line of houses they finally


managed, but with some difficulty, to get to the railway. Here they
had to wait for a considerable time for a train, as the ordinary traffic
was somewhat complicated by fog. It was eight o'clock before they
reached Waterloo, and they learned from the stationmaster that
nothing had been seen of the two men alluded to in the telegram,
although each train and the barrier of the platform it arrived at had
been watched by the police. Vernon was not surprised at this
intelligence.

"I thought both Hest and Maunders were too clever to risk a wire to
Waterloo Station, as they knew I would send it."

"What's to be done now?"

"Let us go to your rooms and send a telegram to Drench at


Hampstead asking him to come down."

"The fog is still thick," said Towton as they stepped into a taxi;
"perhaps he won't come. Hang it, every possible obstacle seems to
be placed in our way. The blackguards will escape."

"Not out of England, at all events," said Vernon grimly. "When we


explain everything to Drench he will have all the stations and all the
ports watched. We'll catch them sooner or later."

But the young man spoke with more confidence than he actually felt,
as he knew that Hest was extraordinarily clever in concealing
himself. As The Spider he had baffled the police for years, and, being
an arch-criminal, would be dexterous enough to escape even out of
this tight corner. He began to consider what was best to be done
after sending a wire to Inspector Drench, when his meditations were
broken in upon by the Colonel.
"Do you really believe that Hest is The Spider?"

"Of course. Didn't you see his face change when Maunders spoke,
and didn't he cut and run when he saw that the game was up?"

"It certainly looks like guilt. And yet it seems incredible. The man
always has lived in Yorkshire, whereas The Spider is supposed to live
in town."

"No one has ever known the whereabouts of The Spider," said
Vernon coolly, "and it is as easy to write blackmailing letters in
Yorkshire and post them in London as to live in town altogether for
that purpose. Besides, his sister told me herself that Hest frequently
went away for days and weeks at a time. Doubtless he was
attending to his nefarious business in London."

"How do you reconcile this devilry with his philanthropy?"

"It seems odd, doesn't it? But we know that the worst criminals have
their good points. There lives some soul of good in all things evil,
you know."

"I rather think," said the Colonel grimly, "that Hest looks upon
himself as a kind of modern Robin Hood, who takes from the rich to
give to the poor. He blackmailed wealthy folk in order to build his
Bolly Reservoir and his confounded school-houses. Robbed Peter to
pay Paul, as you might put it."

"Rob Dives to help Demos is the way he would put it," said Vernon
with a shrug. "However, we have made a great discovery and one
which the police will thank us for making. When Hest is captured
many a rich man will sleep the easier."

"Yes, when he is captured; but that won't be easy."

"I agree with you. The Spider is as clever as his father--the devil.
Humph!" added Vernon thoughtfully, "I wonder if his sister knows
anything about his infernal doings."

"No," said the Colonel decidedly. "I don't like Miss Hest, as I think
she is too imperious and masterful and wants her own way too
much. All the same, I don't believe she would have countenanced
her brother's behaviour. Besides, she was always away from him,
and he doubtless carried on his pranks without her knowledge."

"You defend her. I thought you didn't like her?"

"I admitted only a moment ago that I did not," snapped the Colonel
as the taxi cautiously felt its way up Whitehall, "but I must be just to
her. The poor woman will suffer as it is when her brother's
criminality becomes known. It will ruin her reciting business."

"That's true, and there is no chance of keeping the matter quiet.


Hest must be captured and imprisoned."

"Hanged, you mean. Remember, he murdered Martin Dimsdale."

Vernon shuddered. "I suppose he did," was his reluctant admission.


"I am sorry for Miss Hest, as, contrary to your opinion, I think highly
of her. She may be masterful, as you say, but Ida is so weak that it
is just as well that she should have someone to lead her in the right
way."

"Oh, Miss Hest has led her in the right way, no doubt," retorted the
Colonel; "but I prefer to be the guide myself. See here, Vernon,
come down with me next week to my place at Bowderstyke."

"What for? We have to hunt down Hest and Maunders."

"We can safely leave that to Drench and his underlings. I want to
get Ida away from Gerby Hall. Sorry as I am for Miss Hest in having
such a brother, I don't want Ida to continue under her protection any
longer, especially as she wants to marry her to Maunders."
"Maunders will have no chance now," said Vernon with a grim
chuckle. "But you are a bachelor, Towton, so Ida will scarcely be able
to come to The Grange."

"I shall ask her aunt down as chaperon."

"Lady Corsoon? Good! And ask Lucy also, for my sake."

"With great pleasure. I think that the removal of Maunders from my


path and yours will result in the courses of our love running
smoother. Ah, here we are, and I'm glad, as I want drink and
victuals."

After the long, cautious creeping through the fog the two gentlemen
arrived at the Colonel's rooms, and Bendham was sent out for food.
Having dined, they smoked and talked while waiting for Inspector
Drench. But he never came. A telegram arrived instead stating that
the fog prevented his keeping the appointment. And it also
prevented Vernon getting back to his own quarters, so the Colonel
put him up for the night. Next day the hunt for the criminals began
in earnest.

Before Drench arrived, which he did at eleven o'clock, Professor Gail


came to the Athenian Cub, where the gentlemen were waiting, and
produced a wire which had arrived for Hest on that morning. He had
not opened it, being afraid, but brought it intact to Vernon. That
young man had no compunction under the circumstances in reading
it, and found that it was from Frances Hest to her brother asking him
to return home as divers matters connected with the estate required
his attention.

"Sent first thing this morning," said Vernon passing the wire to the
Colonel. "Poor woman! she doesn't know that her brother has been
found out."

The wire was shown to Inspector Drench when he duly arrived, and
he was exhaustively informed of all that had taken place. He was
naturally both astonished and interested, but nevertheless expressed
himself annoyed that civilians should have proceeded so far without
invoking the police. Drench gave both the Colonel and Vernon to
understand that if he had been on the spot Hest and his accomplice
would not have escaped so easily, a view with which they privately
differed, although they did not think it wise to say so. But Towton
_did_ intimate to the Inspector that he was a military man and not a
civilian, whatever Vernon might be. Drench declined to take any
notice of this remark.

The Inspector also questioned Gail closely, but could learn nothing
from him of any moment, since the old actor knew nothing and was
greatly agitated over the whole affair. Finally, bidding all three hold
their tongues, Drench sallied forth to search for the missing pair. He
saw the Scotland Yard authorities and wired to all the ports and
railway stations in the kingdom. As yet, and because he desired to
keep the affair out of the newspapers, Drench did not advertise in
the journals, or by handbills. Otherwise, in every way he strove to
find the fugitives.

He might as well have attempted to find a shell at the bottom of the


Atlantic. Day after day went by and no news was heard of Hest or
Maunders, and from the moment they had been swallowed up by
the fog at Isleworth nothing had been seen of them. They had not,
so far as could be ascertained, passed out of the kingdom, and
certainly they were not to be found in the kingdom itself. Like
Macbeth's witches, they had made themselves thin air: like the
children of Korah and Dathan, they apparently had been swallowed
up by the earth. But, thanks to Drench, the discovery of the identity
of The Spider and his subsequent escape had not yet been made
public, and the Press knew nothing of what was taking place. But
the time had now come when publicity was absolutely necessary.

"There's nothing else for it," said Drench, and Vernon in spite of his
wish to keep things quiet, agreed with him.
CHAPTER XVII.

IN THE TRAIN.

Within a week of the episode at Isleworth Colonel Towton took


Vernon with him to Yorkshire. Inspector Drench was still searching
for the fugitives and was still unable to find them. True to his
reputation, The Spider had covered up his tracks in a most masterly
manner, and there was not the slightest clue to indicate his
whereabouts. Presumably Maunders was with him, as he had not
returned to his rooms in Planet Street, nor had he been seen in any
of his usual haunts about town. This was to be expected, as
Maunders had, as the saying goes, "gone under," and the society
wherein he had glittered so gaily would henceforth know him no
more. It seemed a pity that a young man with talents and good
looks and social position should have ruined his life at the very
outset of a promising career. But there must have been some
criminal strain in Maunders, which came to the surface in prosperity
instead of being revealed by poverty. He was, as Coleridge says
about people with such natures, "a fool in a circumbendibus."

However, it was useless for Vernon to mourn over his old school
friend's downfall. He had done his best to keep him in the straight
path and had failed to prevent his feet from straying. He therefore,
as there was nothing else to be done at this eleventh hour, washed
his hands of him and left him, together with Hest, to the tender
mercies of the law as represented by the Inspector. Now that Drench
had all the threads in his own hands he resented anyone else
weaving them into ropes for the necks of the criminals, as he
apparently wished to secure all the glory and honour of the capture
to himself. Both Towton and Vernon were rather glad that the
Inspector took this view, as they wished to have nothing more to do
with the matter. And, before leaving London for Bowderstyke,
Vernon shut up his Covent Garden office and formally renounced his
pseudonym of Nemo. As by this time he was officially recognised as
his uncle's heir he could well afford to do so. Sir Edward, however,
still lingered between life and death, so it was doubtful when Vernon
would enter into his kingdom.

While the train was flying through the autumnal landscape Towton
and his guest made themselves comfortable in a first-class
compartment, which they had secured to themselves, for the
purpose of uninterrupted conversation. They were still deeply
interested in the case and looked forward anxiously to the capture of
The Spider. It was only right that he should suffer for his dastardly
crime in murdering an old and inoffensive man. As to Maunders, he
was evidently hand in glove with the cleverer rascal, and would
undoubtedly be given a long term of imprisonment. Thus society
would be rid of two dangerous people, and those with secrets would
sleep the easier, knowing that one Asmodeus was dead and the
other safely locked up.

"But I don't know what poor Mrs. Bedge will do," said Vernon
looking dolefully out of the window.

"Does she know anything?" asked the Colonel, throwing down the
morning paper which he had been reading and settling himself for a
talk.

Vernon nodded. "I saw her yesterday. She sent to ask me what had
become of Constantine. I was obliged to tell her."

"Do you think that was kind or wise?"

"I think so, decidedly. It was better that Mrs. Bedge should learn the
truth from a friend than see it crudely printed in the daily papers.
And there it is bound to appear sooner or later."

"Drench will have to catch The Spider first," said the Colonel coolly.
"No easy task, as we know. What did she say?"

"At first she declined to believe it, badly as Maunders has treated
her. She kept insisting that it was all a mistake and that Constantine
would appear to put matters right."

"What wonderful faith these women have, Vernon."

"Bless them, yes. They go by their hearts entirely."

"In that case," remarked Towton drily, "Mrs. Bedge must have known
that Maunders is not the saint she tries to make him out to be."

"I did not say that she went by her instinct," replied Vernon equally
drily; "there is a difference between that and heart-love. Because
Constantine is her sister's child and her adopted son Mrs. Bedge's
heart, which he has almost broken, cherishes him fondly; but her
instinct must have told her long ago that the fellow is a scamp of the
worst sort."

"He's a thorough-paced scoundrel," said the Colonel vigorously.

"Mrs. Bedge declined to take that view of him. She wailed that he
had a tender heart and was led away because he had a weak
nature. In fact, her defence was that of a man being his own worst
enemy."

"Maunders certainly was. He had all the gifts of the gods, yet----"

"Yet fell because the greatest gift of honest purpose was not given,"
finished Vernon. "Hang it all, Towton, scamp as the fellow is, I am
sorry for him."

"I'm not," growled Towton savagely.


"Ah, you did not play with him as a child, nor did you go to school
with him, my friend. Although I'm bound to say that Constantine was
always a selfish chap--what you would call a rotter."

"I would call him nothing of the sort, Vernon. I detest slang."

"That's a mistake. Slang frequently hits the nail on the head when
the King's English misses it altogether. Slang conveys much in little,
and----"

"Oh, the deuce take your philology. Go on talking about Mrs. Bedge."

"There's no more to say. Maunders has pretty well drained her, but
she has enough to live on, and the Hampstead house is her own.
Towards the end of our conversation, however, she let out that she
was not surprised at Conny's behaviour, as she rather expected it."

"H'm! Somewhat contradictory. Why?"

"Well, it seems that Maunders' father, the Greek, Mavrocordato, you


know, was rather a bad egg himself. He worried his wife--Mrs.
Bedge's sister, that is--into her grave, and swindled his partner
before he committed suicide."

"I never heard that before."

"No. Mrs. Bedge always kept it quiet for the boy's sake until she let it
out to me in her grief yesterday. Mavrocordato--he took the English
name of Maunders--bolted with a heap of his partner's money, and
shot himself at Corfu, whither he was traced by detectives. Mrs.
Bedge adopted the son, and did her best to train him up as an
honest man. She tried her hardest, I'm certain, but what's bred in
the bone, you know."

Colonel Towton folded his arms and stared straightly before him.
"Poor devil. He was considerably handicapped by such a father. I
wonder, Vernon, for how many of our deeds we are responsible,
when you take heredity into consideration. Some sin because they
like it, but many because they can't help it."

"Let us give Maunders the benefit of the doubt, and say that the sins
of his father were visited on him. And, of course, we must not forget
that Hest is an extremely clever and strong-minded man, who could,
and did, easily control Maunders' weaker nature."

"There's something to be said there," assented the Colonel


thoughtfully. "I daresay Hest entangled the poor wretch in crime
before he well knew what he was about, and once committed he
would be compelled to remain in the mud. But Hest himself, Vernon.
What do you make of him?"

"I don't know enough about him to give an opinion. Perhaps when
we see the sister she may tell us something."

"Oh, by the way, I received a letter from her two days ago, about
which I intended to speak to you, Vernon. All this bother and worry
put it out of my head. I left it at home, unfortunately, but I can tell
you the gist of it."

Vernon looked interested. "What did she write about, and why to
you?" "She wrote to me because she wants me to marry Ida."

"I really don't see what she has to do with that," remarked Vernon
with a shrug; "for Ida is surely of an age to choose for herself."

"I always told you, Vernon," said Towton, deliberately crossing one
leg over the other, "that Ida, being less masterful than Miss Hest, is
usually guided by her, and that I objected to the guidance. Ida liked
me more than anyone else before that handsome scamp came
along. Then she became infatuated with him, and Miss Hest did her
best to induce her to marry him. But the sad death of Dimsdale took
Ida's thoughts off Maunders, and--as I judge from the letter Ida
wrote me from Gerby Hall--Miss Hest tried to get her to love the
man again. Failing that, she attempted to get Ida to marry her
brother, only he came up to London, not feeling disposed to fall in
with his sister's views. You can therefore see that Miss Hest sways
Ida a great deal, and for that reason I have come to get her away
from such dangerous company--doubly dangerous now that we
know Francis Hest is The Spider."

Vernon shrugged his shoulders. "It's rather hard to blame the sister
for the brother's delinquencies," he said judicially. "And now that he
and Maunders are out of the running she will place her weight in
your scale. In fact, from your late observation, she has already done
so. You should be very pleased, Colonel, whereas you seem to me to
be ungrateful."

"I don't want Ida to be induced to marry me by Miss Hest's


representations, Vernon," said Towton hotly. "It's a liberty on her
part to interfere with my wooing. Lady Corsoon comes down to-
morrow with her daughter, and I shall ask her to go to Gerby Hall
and bring Ida back with her. Then we will have finished with these
shady people, and Ida will marry me of her own free will."

"Well, Colonel," replied Vernon pacifically, "I hope things will turn out
as you expect. But what did Miss Hest write about?"

"About her brother. She asked me if I had seen him, and what was
the matter with him." Vernon looked puzzled. "I don't understand.
Does she suspect----"

"She suspects nothing," broke in Towton impetuously. "But she


stated that she had received a letter from her brother four or five
days ago saying that he intended to leave England for ever, as he
was tired of civilisation. He enclosed a Deed of Gift, making over
Gerby Hall and its acres to her, as he intended--so he said--to earn
his own living when abroad. Naturally, Miss Hest could not
understand this, and wrote asking me what was the matter."

"Did you explain?"


"No. I wrote saying that I was coming down to my own place, and
would tell her all I knew when I arrived. But you can see, Vernon,
that Hest is still in London."

"He was, six or seven days ago, but he may have gone away since,"
said Vernon cautiously. "Who drew up the Deed of Gift?"

"I can't say. Miss Hest did not explain that. Why?"

"Because if it was some lawyer we might be able to question him


regarding Hest's latest movements. Humph! So Hest has bolted.
Well, I'm not surprised at that. But I am rather astonished he should
surrender his property."

"Oh, well. I expect his business as The Spider has made him quite a
rich man. Remember, the blackguard has been blackmailing
successfully for three or four years. He knows that his sister has
nothing save what she makes by her reciting, so perhaps his
conscience smote him, and so he made his Deed of Gift. It's a lucky
thing for her, as Gerby Hall is a fine old place, although rather
gloomy, and there is a decent income of one thousand a year
attached to it, farms, village rents, and all that sort of thing, you
know."

"It's queer Hest should have behaved so well, when he is such a


scoundrel, Towton. You told me that he quarrelled with his sister,
and certainly from the remarks she made about him to me, she did
not seem over fond of him."

"Blood is thicker than water," said the Colonel sententiously, "and


dog does not eat dog."

"I agree with your first proverb, but not with the second, Towton.
Miss Hest is not of the same breed, morally speaking, as her brother,
and no doubt will be horrified when she learns of his wickedness."

"Probably. You always defend her."


"I am just," said Vernon coldly. "So far as I can see, she is a clever
woman of good principles, although, I admit, rather masterful. Her
brother has done a wise thing in handing her over the property,
whatever his reasons may be. She will be an admirable mistress."

"Oh, as to that, Hest was a great benefactor to all the villages


around, and the people swear by them. If he has bolted with
Maunders, Drench will have to let the matter drop. But, if he is
captured, no one here will believe that he is a murderer and a
blackmailer. They know him only as a good landlord and a kind
friend."

"And we know him as a criminal. Strange that two such diverse


natures can exist side by side."

"I daresay Hest hoped that his good deeds would pay for his bad
ones," said the Colonel carelessly. "I shall be glad if he escapes,
richly as he deserves to be hanged for murdering Dimsdale. It will be
just as well if the whole thing is buried in oblivion. Then I shall
marry Ida, you Miss Corsoon, and Miss Hest can play the lady of the
manor here, as she pleases."

"What about the Dimsdale property?"

"If it belongs to Lady Corsoon she must have it; if Maunders' story is
a lie, which it may be, I shall stick to it on behalf of my wife.
However, we may hear from Venery of Singapore in a few weeks. My
letter must have nearly reached him by this time."

"You can learn the truth of the story nearer home," said Vernon after
a pause. "Miss Jewin, the housekeeper at Gerby Hall, told the story
to Maunders, according to his own account."

"I shall question her, you may be sure," said the Colonel grimly; "but
I want to hear from Venery also. Oh, I'm sick of talking about these
things," he added with a yawn. "It's time for forty winks." And
forthwith he closed his eyes, after settling himself comfortably in his
seat. Vernon, not inclined to rest, lighted a fresh cigar and buried
himself in a book.

It was five o'clock when the travellers reached Bradmoor, the nearest
station to Bowderstyke. It was ten miles to the valley, but the road
was excellent, and Towton's motor-car awaited them. In ten minutes
the baggage was packed away, and Vernon with his host was safely
ensconced in the back part of the machine, which was covered with
a hood. Towton asked Vernon if he would care to drive, but as the
offer was refused and the Colonel himself did not feel in a sporting
humour, the conduct of the journey was left to the smart chauffeur.
He appeared to be well acquainted with the country, and as the road
was somewhat lonely, the motor travelled towards Bowderstyke at a
great rate of speed. The motion was exhilarating, and the view on
either side of the roadway extremely picturesque, so Vernon enjoyed
himself greatly in the fresh air, after the close atmosphere and the
monotony of the train. With the wind blowing in his face and the
smooth, easy gliding motion, he felt like a flying bird, or at all events
as though mounted on one.

The country was wild and barren, consisting mainly of interminable


stretches of moorland, mounting up on either side of the road to
considerable heights. Occasionally there was a dip covered with
green grass and trees, already beginning to shed their leaves, but
for the most part the sombre moors, darkening in the failing light,
spread solemnly to right and left. It was rarely that a house or a
village was passed, and only every now and then could Vernon catch
a glimpse of cattle or human beings.

"This country would get on my nerves," he said to his companion. "It


is like the weird landscape described by Browning in his Childe
Roland poem. Those telegraph poles are the sole signs of
civilisation."

"Oh, we'll come to a more cheery aspect shortly," said Towton


smiling; "for my part, I love the gloom and the loneliness of our
moors. Many a time in the garish Indian days, with a burning sun in
the hateful blue sky, have I longed for dear old Yorkshire."

"Everyone to his taste," said Vernon with a shrug. "I prefer


something much more cheerful."

"You are a cockney at heart, Vernon."

"I daresay. London is good enough for me."

Towards the end of the ten mile stretch from the station signs of
civilisation became more frequent. Here and there was a village with
cultivated fields around it. Cattle were pastured in enclosed
paddocks, and men and women with laughing children trudged
along the high road, looking after the motor with great curiosity, for
the machine was yet a novelty in that lonely district. Twice the road
ran directly through a village, and Vernon had an opportunity of
seeing the solid grey stone houses, which were suited to the
Calvinistic looks of the country. And the people themselves appeared
to be what the Scotch call "dour."

And now the moors began to grow higher and to close in on the
white road with a gradual menace. Leaving the comparatively broad
lands, the motor glided into a valley, which grew even more narrow
as they proceeded. A babbling stream prattled down the centre of
this, over a stony bed, and beside it the road twisted along like a
white serpent, protected by a parapet of rough stones. Already the
crimson light of the sunset had died out of the western sky, but the
moon was full, and, soaring high in the dark blue dome of the
firmament, poured floods of light into the gully, to use a Colonial
expression--for by this time it was little else. And looking upward,
Vernon could see star after star peep out to attend on the majestic
orb.

"What do you call this place?" he asked abruptly. Towton glanced at


him in surprise. "Didn't I tell you? It's Bowderstyke."
"Great Scott, Colonel, is your house situated in this isolated, damp
spot. I should think you never saw the sun from one year's end to
the other, save when it was directly overhead."

"Oh, the valley broadens out further on. This is merely the
entrance."

"What the deuce do the inhabitants live on? It's like living in a
drain."

"Oh, confound you, Vernon," said the Colonel half annoyed. "It's one
of the most beautiful places in the world. If you were a Yorkshire
tyke you would admit that. There is only the village of Bowderstyke
a mile away, and the inhabitants live by pasturing their cattle on the
moors on the heights above. Also there is a weaving and spinning
industry, the mills being driven by water power, of which there is no
lack."

"This stream doesn't seem to have much water," said Vernon


disdainfully.

"You should see it in winter when the snows melt on the moors,"
advised the Colonel. "Besides, the water from the mills comes from
Hest's new reservoir, and there is a never-failing supply. This stream
used to be much broader, and its bed contained much more water,
but when the Bolly Dam was constructed, of course the supply
dwindled. Pipes run under this road to supply the several villages
you saw just before we entered the valley."

"Where is the dam which our criminal friend built?"

Towton pointed straight ahead. "Round the next corner you could
see it, but we do not go so far. There was a small lake there up on
the moors which fed this stream. Hest simply got engineers to dam
the lake and prevent too much water going to waste down the bed
of this torrent. The dam runs right across the valley a mile and a half
beyond my house."
"But isn't that dangerous. If it burst this valley would be flooded
from end to end, and everybody would be drowned, to say nothing
of the way in which the village would be smashed up."

"Well, yes." Towton pinched his nether lip uneasily. "I've thought of
that myself many a time. But I was abroad when the dam was
constructed. There certainly--as I have often said--should be an
outlet for the water other than the pipes which supply Bowderstyke
and the villages outside the valley, capacious as those same pipes
undoubtedly are. Assuredly, if the reservoir burst there would be
great loss of life and destruction of property. But the Bolly Dam is
very strongly built, so I have no fear of anything happening. You can
see it from my house, and we'll pay it a visit in a day or two.
Meantime, this is Bowderstyke village."

By this time they were passing through quite a number of small


houses, from the windows of which lights gleamed cheerfully. The
motor soon left these behind, then swerved to the right--looking up
from the entrance to the valley--and shortly began to climb a
winding road. At this point, as the Colonel had foretold, the vale
broadened abruptly, and the high moors stood away so as to form a
kind of deep cup. Up the side of this, the road along which they
were travelling sloped upward for some distance, then turned on
itself and sloped still higher. Shortly the motor attained the highest
level, and in the moonlight Vernon could see the moors stretching
for miles, lonely and romantic. A straight road ran parallel with the
upper portion of the valley for close upon half a mile. Then appeared
a miniature forest, encircled by a high stone wall. This was
undoubtedly artificial, as the moorlands were treeless, and the
unexpected woodland looked out of place amidst its bleak
surroundings.

The motor soon arrived at two tall stone pillars crested with heraldic
monsters, and passing through these, spun up a short avenue to
stop before a large white house, brilliantly lighted up. Spacious
lawns opened up before the mansion, interspersed with flowerbeds,
now bloomless, and the whole was shut in by the fairy forest, as
Vernon called it in his own mind.

"Here we are," said Colonel Towton jumping from the car. "Allow me
to welcome you to The Grange, my friend."

"Thank heaven the journey's at an end," said Vernon.


CHAPTER XVIII.

AT BOWDERSTYKE.

"I hope you slept well, Vernon," said the Colonel to his guest the
next morning when they were at breakfast.

"Like a top," was the response. "That journey tired me out, and your
moorland air is so strong that I slept the moment my head was on
the pillow."

"You will eat well also, Vernon," remarked Towton, regarding with
satisfaction the attention paid by his visitor to the appetising meal.
"Our air is famous as a tonic. You will return to town a giant
refreshed."

"There is lots to be done before I leave here," said Vernon passing


his cup for a fresh supply of coffee. "What is your first step?"

"We will call on Miss Hest this afternoon, and I can show you the
village at the same time. Lady Corsoon and her daughter will come
to-day, and will arrive to dinner. That is the programme."

"I'm at your disposal. And to-morrow I suppose you will get Lady
Corsoon to take charge of Ida?"

"If Miss Hest will let her go," said the Colonel cautiously.

"She can't detain her, surely."

"Not by outward force; but she may use her influence to keep her.
Miss Hest won't lose the chance of swaying the mind of a girl with
Welcome to our website – the perfect destination for book lovers and
knowledge seekers. We believe that every book holds a new world,
offering opportunities for learning, discovery, and personal growth.
That’s why we are dedicated to bringing you a diverse collection of
books, ranging from classic literature and specialized publications to
self-development guides and children's books.

More than just a book-buying platform, we strive to be a bridge


connecting you with timeless cultural and intellectual values. With an
elegant, user-friendly interface and a smart search system, you can
quickly find the books that best suit your interests. Additionally,
our special promotions and home delivery services help you save time
and fully enjoy the joy of reading.

Join us on a journey of knowledge exploration, passion nurturing, and


personal growth every day!

ebookmasss.com

You might also like